Итак, я пытаюсь обновить документ в моей базе данных, имеющий массив.
В настоящее время документ пользователя может выглядеть следующим образом.
username: John postsProjects: ['project -one ',' project-two ']
Однако, когда Джон отправляет «project-three» в другую коллекцию, я хочу взять документ johns и добавить «project-three» в его массив.
Вот мой код в настоящее время (обратите внимание, я не использую UID документа, так как я установил UID в качестве имени, но пользователь может изменить свое имя пользователя в дальнейшем, но его UID остается прежним)
var newProject = db.collection('users').where('user_id', '==', this.userInfo.user_id);
newProject.update({
postedProjects: firebase.firestore.FieldValue.arrayUnion("test")
})
Это код, который я следовал из Firebase do c, с небольшой корректировкой изменения .do c (uid) в .where, вместо этого сопоставить существующего пользователя с именем в коллекции.
Однако я получаю сообщение об ошибке «newProject.update не является функцией».
- добавлено. ошибка, так как я не уверен, где поставить "update ()"
db.collection('users').where('user_id', '==', this.userInfo.user_id)
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
doc.data().update({
postedProjects: firebase.firestore.FieldValue.arrayUnion("new project")
})
})
})}}