Mic*_* m. 4 javascript google-cloud-functions
我收到这个错误
error is here: Error: Value for argument "value" is not a valid query constraint. Cannot use "undefined" as a Firestore value. If you want to ignore undefined values, enable `ignoreUndefinedProperties`.
Run Code Online (Sandbox Code Playgroud)
在我的 firebase javascript 函数中,我不知道如何解决它。我发现在打字稿中会发生此错误。但是这个错误在 javascript 中意味着什么?
这是我的功能
import * as functions from "firebase-functions";
import admin from "firebase-admin";
import {
deleteCollection,
deleteQuery,
deleteUserData,
} from "../utils/deletion";
export default functions.firestore
.document("deletions/{userUid}")
.onDelete(async (snap, context) => {
const db = admin.firestore();
const { userUid } = context.params;
const { uid } = userUid;
//dont forget to delete storage files
try {
await db.doc(`deletions/${userUid}/meinprofilsettings/${uid}`).delete();
await deleteQuery(db, db.collection(`deletions/${userUid}/videos`).where("uid", "==", uid));
Run Code Online (Sandbox Code Playgroud)
该行是等待删除查询...
deleteQuery 函数如下所示
async function deleteQuery(db, query, batchSize = 100) {
const q = query.limit(batchSize);
return new Promise((resolve, reject) => {
deleteQueryBatch(db, q, resolve).catch(reject);
});
}
async function deleteQueryBatch(db, query, resolve) {
const snapshot = await query.get();
const batchSize = snapshot.size;
if (batchSize === 0) {
// When there are no documents left, we are done
resolve();
return;
}
// Delete documents in a batch
const batch = db.batch();
snapshot.docs.forEach((doc) => {
batch.delete(doc.ref);
});
await batch.commit();
// Recurse on the next process tick, to avoid
// exploding the stack.
process.nextTick(() => {
deleteQueryBatch(db, query, resolve);
});
}
Run Code Online (Sandbox Code Playgroud)
And*_*ola 11
\n\n错误: 参数“value”的值不是有效的查询约束。\n无法使用“undefined”作为 Firestore 值。如果您想忽略\n未定义的值,请启用
\nignoreUndefinedProperties。
这意味着您的列表中有一个 \xe2\x80\x98undefined\xe2\x80\x99 值。Firebase 不支持列表中未定义的值,请检查您的列表并查看是否有undefined. 您可以通过使用来避免这种情况ignoreUndefinedProperties。以下是如何实现此目标的示例:
import * as firestore from "firebase-admin";\nRun Code Online (Sandbox Code Playgroud)\n然后只需要有这样的东西:
\nconst db = firestore.firestore(); \ndb.settings({ ignoreUndefinedProperties: true })\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3580 次 |
| 最近记录: |