如何在Firebase中基于用户更改数组?

时间:2018-12-31 21:18:00

标签: javascript reactjs firebase google-cloud-firestore

我正在构建一个使用Reactjs和Firebase的应用程序,该应用程序可以处理用户,并且每个用户都可以添加,删除,更新,当然还可以显示他喜欢的列表。每个用户的结构可能类似于{uid: '123', favList: ['1', '2']}

如何更新数组favList,并且如果uid已经存在,又不添加新记录?

enter image description here

这是我添加的代码:

const db = fire.firestore();
db.settings({
   timestampsInSnapshots: true
});
db.collection('users').add({
  favorites: this.state.favs,
  uid: fire.auth().currentUser.uid
});

1 个答案:

答案 0 :(得分:2)

您要执行的操作在Firebase中称为数组联合操作。

如果对要在其中将UID添加到favorites字段的文档进行引用:

documentRef.update({
    favorites: firebase.firestore.FieldValue.arrayUnion(uid)
});

有关更多信息,请参见documentation on updating elements in an array