Я пытаюсь добавить новый объект javascript в поле массива в коллекции Firestore, используя Node.js Firebase Admin SDK.
Я уверен, что do c, на который я нацелен есть поле, о котором идет речь, но я продолжаю получать ошибку: 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;