我正在尝试使用 Node.js Firebase Admin SDK 将新的 javascript 对象添加到 Firestore 集合中的数组字段。我确定我要定位的文档有问题的字段,但我不断收到错误:TypeError:Cannot read property 'arrayUnion' of undefined我知道这个问题,但修复没有帮助。非常感激任何的帮助。有问题的路线:router.post("/create-new-user-group", async (req, res) => { try { const { userId, usersName, groupName } = req.body; if (!userId || !usersName || !groupName) return res.status(422).send(); const groupRef = await db.collection("groups").doc(); const group = await groupRef.set({ id: groupRef.id, name: groupName, userId, members: [{ id: userId, name: usersName, isAdmin: true }], }); const response = await db .collection("users") .doc(userId) .update({ groups: fbApp.firestore.FieldValue.arrayUnion({ id: userId, name: userName, }), }); res.send(group); } catch (error) { console.log("error creating new group:", error); res.status(400).send(error); }});firebaseInit.js:const admin = require("firebase-admin");const serviceAccount = require("../serviceAccount.json");const firebaseApp = admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "https://xxx-xxxxx.firebaseio.com",});exports.fbApp = firebaseApp;
1 回答
温温酱
TA贡献1752条经验 获得超4个赞
错误告诉你这fbApp.firestore.FieldValue是未定义的。因此,它没有任何可供您调用的属性或方法。
如果要使用FieldValue,则必须通过firebase-admin命名空间导入引用它,而不是通过初始化的应用程序实例。
const admin = require("firebase-admin");
const FieldValue = admin.firestore.FieldValue;
// now you can write FieldValue.arrayUnion(...)
添加回答
举报
0/150
提交
取消