我试图通过云函数在Firebase Firestore中将一个新的String值保存保存到文档中的数组中,这是源代码
注意:values.raffleId是一个String
exports.onRaffleSignupCreate = functions.firestore
.document("posts/{postId}/raffleSignups/{signupId}")
.onCreate(async (snapshot, context) => {
const values = snapshot.data();
console.log(values.raffleId);
db.collection("users")
.doc(values.userId)
.update({"signUps": admin
.firestore
.FieldValue
.arrayUnion([values.raffleId])});
});
字符串
它给了我这个错误:
onRaffleSignupCreate
Error: Element at index 0 is not a valid array element. Nested arrays are not supported. at validateArrayElement (/workspace/node_modules/@google-cloud/firestore/build/src/field-value.js:427:15) at ArrayUnionTransform.validate (/workspace/node_modules/@google-cloud/firestore/build/src/field-value.js:354:13) at /workspace/node_modules/@google-cloud/firestore/build/src/document.js:809:56 at Map.forEach (<anonymous>) at DocumentTransform.validate (/workspace/node_modules/@google-cloud/firestore/build/src/document.js:809:25) at WriteBatch.update (/workspace/node_modules/@google-cloud/firestore/build/src/write-batch.js:379:19) at DocumentReference.update (/workspace/node_modules/@google-cloud/firestore/build/src/reference.js:387:14) at /workspace/lib/index.js:14:10 at cloudFunction (/workspace/node_modules/firebase-functions/lib/cloud-functions.js:134:23) at /layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/invoker.js:199:28
型
有没有人遇到过这个问题,知道如何解决它?
1条答案
按热度按时间tjrkku2a1#
正如
FieldValue.arrayUnion
的Admin SDK文档中所解释的那样,您应该传递元素(或元素列表)而不是Array。因此,以下方法应该有效:
字符串
值得注意的是:如果你有一个元素数组,你想传递给方法,使用spread syntax:
型