Я новичок в Firebase и немного борюсь.
В настоящее время я пытаюсь обновить массив внутри пользователя в документе. Однако я не могу сопоставить пользователя с текущим пользователем, используя уникальный идентификатор, поскольку уникальный идентификатор каждого пользователя является их именем пользователя, и он мог измениться с момента создания.
Я решил, что наилучшим способом сопоставить пользователя документов с текущий пользователь должен будет использовать .where (). get (), а затем использовать «update ()» для обновления массива.
Теперь вот где я застреваю. В документах Firebase их пример использования .update прикреплен к .do c
var washingtonRef = db.collection("cities").doc("DC");
//Atomically add a new region to the "regions" array field.
washingtonRef.update({
regions: firebase.firestore.FieldValue.arrayUnion("greater_virginia")
});
Однако, поскольку я использую .where, я предполагаю, что должен использовать ссылки и снимки. Но я не совсем уверен, как ссылки работают в этом сценарии, и, как при этом, как правильно обновлять.
Вот код, который у меня есть через некоторое время, но я не могу разобраться с его вариантами. (по сути, я хочу добавить новый проект (в данном случае он называется «новый проект» в пользовательский массив postsProjects.)
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")
})
})
})
Это дает мне ошибку: «.update () не является function ".
Кто-нибудь может мне помочь с моим решением, чтобы показать , как ссылки должны правильно использоваться в этом сценарии?