将我们的 React Native 从 0.63.3 更新到 0.66 后,
CryptoJS.AES.decrypt(encryptedString, key)
Run Code Online (Sandbox Code Playgroud)
返回无效数据。我们能够确定这与 Metro + babel 依赖关系有关,但无法找到解决方法。这与 0.56.0 到 0.65.0 的 Metro Bundler 有关吗?使用:
react-native-crypto-js
Run Code Online (Sandbox Code Playgroud) 我对我的react-native android应用程序和nodejs服务器使用了相同的aes加密代码(在https://github.com/imchintan/react-native-crypto-js#readme ),
let data = [{id: 1}, {id: 2}]
// Encrypt in react-native android app
let ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString();
// Decrypt in the nodejs server
let bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
let decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
Run Code Online (Sandbox Code Playgroud)
当我的反应本机应用程序处于“JS Dev Mode”激活状态并且“JS Minify”停用时,服务器中的解密工作正常,但是当我将应用程序配置为“JS Dev Mode”停用并且“JS Minify”激活时,我无法解密服务器中的数据,
错误:Object.stringify 中的 UTF-8 数据格式错误
仅当应用程序处于生产模式时,服务器才会抛出错误,错误恰好在执行时发生:bytes.toString(CryptoJS.enc.Utf8)
有人可以向我解释我做错了什么或如何解决问题吗?
当我尝试连接 google firebase 实时数据库时,出现此错误:
ValueError: The default Firebase app already exists. This means you called
initialize_app() more than once without providing an app name as the second argument. In
most cases you only need to call initialize_app() once. But if you do want to initialize
multiple apps, pass a second argument to initialize_app() to give each app a unique name.
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import firebase_admin
from firebase_admin import credentials
from firebase_admin import db
cred = credentials.Certificate('firebase-sdk.json')
firebase_admin.initialize_app(cred, {
'databaseURL': 'https://test-139a6-default-rtdb.firebaseio.com/'
})
Run Code Online (Sandbox Code Playgroud) 错误:
未捕获(承诺中)类型错误:无法读取未定义的属性(读取“路径”)
根据我的测试,
import { getStorage, ref, uploadBytesResumable, getDownloadURL }
from "https://www.gstatic.com/firebasejs/9.1.1/firebase-storage.js";
import { getDatabase, set, child, get, update, remove }
from "https://www.gstatic.com/firebasejs/9.1.1/firebase-database.js";
const realdb = getDatabase();
Run Code Online (Sandbox Code Playgroud)
该错误是因为firebase-storage中的ref( )函数与firebase-database中的ref( )不同
但我只能导入其中一个函数,那么该怎么办呢?要保存 downloadURL,我需要 (firebase-storage) 和 (firebase-database)。
javascript firebase firebase-realtime-database firebase-storage
我正在将 Firestore (我是新手)用于小型 Web 应用程序。目前,每次刷新或转到另一个页面时,该函数都会检索 Firestore 中的所有文档。但它检索的数据不会经常改变,
有没有一种方法可以让我检索所有数据,而无需阅读任何文档?
我目前正在使用这些函数来检索数据
firebase
.firestore()
.collection("products")
.then((snapshot) => {
snapshot.forEach((docs) => {
});
});
firebase
.firestore()
.collection("products")
.where("prodID", "==", prodID)
.then((snapshot) => {
snapshot.forEach((docs) => {
});
});
Run Code Online (Sandbox Code Playgroud) javascript nosql firebase google-cloud-functions google-cloud-firestore
我正在学习 React,但是当我注册用户(使用 createUserWithEmailAndPassword)并尝试更新 displayName 属性时,我收到错误“ user1.updateProfile 不是函数”。
我该如何解决这个错误?
我的代码:
const register = async (e) => {
if (name.length == 0) {
alert("name cannot be empty");
} else {
const userWithEmailAndPassword = await createUserWithEmailAndPassword(auth, email, password)
.then((auth1) => {
const user1 = auth.currentUser;
user1.updateProfile({
displayName: name
});
})
.catch(error => alert(error.message))
console.log(userWithEmailAndPassword);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个 Firebase 函数,当用户的帐户被删除时,它会删除 Firestore 数据库中用户的集合。
const firebase_tools = require("firebase-tools");
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
exports.deleteUser = functions.auth.user().onDelete((user) => {
return firebase_tools.firestore
.delete(`users/${user.uid}`, {
project: process.env.GCLOUD_PROJECT,
token: functions.config().fb.token,
recursive: true,
yes: true
}).catch((error) => {
console.log(error);
throw new functions.https.HttpsError(
"unknown",
"Error deleting user's data"
);
});
});
Run Code Online (Sandbox Code Playgroud)
每当删除用户并执行该函数时,我都会在函数日志中收到以下错误。
FirebaseError: Missing required options (force) while running in non-interactive mode
at prompt (/workspace/node_modules/firebase-tools/lib/prompt.js:16:15)
at promptOnce (/workspace/node_modules/firebase-tools/lib/prompt.js:29:11)
at Command.actionFn (/workspace/node_modules/firebase-tools/lib/commands/firestore-delete.js:69:51)
at Object.delete (/workspace/node_modules/firebase-tools/lib/command.js:190:25)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
Run Code Online (Sandbox Code Playgroud)
我能找到的与此相关的唯一信息是有关将功能部署/删除到 Firebase 的信息,并且我找不到太多有关 firebase-tools …
node.js firebase google-cloud-functions google-cloud-firestore firebase-cli
我只想为每个运行 Cloud Functions 的实例连接一次 Atlas 集群。
这是我的实例代码:
const MongoClient = require("mongodb").MongoClient;
const client = new MongoClient("myUrl", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
exports.myHttpMethod = functions.region("europe-west1").runWith({
memory: "128MB",
timeoutSeconds: 20,
}).https.onCall((data, context) => {
console.log("Data is: ", data);
client.connect(() => {
const testCollection = client.db("myDB").collection("test");
testCollection.insertOne(data);
});
});
Run Code Online (Sandbox Code Playgroud)
我想避免client.connect()在每个函数调用中看起来确实太多了。
我想做这样的事情:
const MongoClient = require("mongodb").MongoClient;
const client = await MongoClient.connect("myUrl", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const db = client.db("myDB");
exports.myHttpMethod = functions.region("europe-west1").runWith({
memory: "128MB",
timeoutSeconds: 20,
}).https.onCall((data, context) => …Run Code Online (Sandbox Code Playgroud) mongodb node.js firebase google-cloud-platform google-cloud-functions
我正在尝试考虑为生产应用程序备份 Firestore 数据的最佳(自动、最便宜且易于使用)方法。
我知道我可以通过预定的云功能自动导出并将它们发送到 gcloud 存储桶。我使用这种方法的问题是,它不允许“新文档和更新文档的增量更新”,而只能备份整个集合。这意味着大多数数据每次都会备份,即使自上次备份以来它甚至没有发生变化,从而导致成本无缘无故地飙升。
我想到的方法是在“my-app”项目中拥有一个云功能,该功能将侦听 Firestore 中的每个更改,并在“my-app-backup”项目的 Firestore 中执行相同的更改。
这样,我只备份更改过的数据。此外,备份的数据永远不会过时(因为它是实时备份的),这与第一种方法(例如每天或每周进行自动备份)不同。
在第一个 Firebase 项目中使用单个云函数将数据写入另一个 Firebase 项目是否可能?如果没有,也许将数据写入其他地方(而不是另一个 Firebase 项目中)?这种方法是否有意义,或者您有更好的建议吗?
firebase google-cloud-platform google-cloud-functions google-cloud-firestore
当我尝试运行下面的代码时,出现错误,但我不知道为什么。
confirmDelete(e) {
const db = getDatabase();
db.ref("/ships/" + e.target.id).remove();
},
Run Code Online (Sandbox Code Playgroud)
如果我记录,我会得到与下面代码中的ShipKeye.target.id完全相同的信息。
以下是该数据库的示例:
{
"ships": {
"-N43Q4E2ruMpyfaIHGDK": {
"date": "2022-08-06T18:00",
"name": "ORANGE OCEAN",
"shipKey": "-N43Q4E2ruMpyfaIHGDK"
}
}
}
Run Code Online (Sandbox Code Playgroud) firebase ×8
javascript ×6
cryptojs ×2
node.js ×2
react-native ×2
firebase-cli ×1
mongodb ×1
nosql ×1
python ×1
reactjs ×1
vue.js ×1
web ×1