如何为firebase字段添加价值
Posted
技术标签:
【中文标题】如何为firebase字段添加价值【英文标题】:how to add value into firebase field 【发布时间】:2021-12-11 09:45:31 【问题描述】:我是 react native 和 firebase 的新手,正在尝试创建一个社交媒体应用程序,建立一个添加朋友的功能。
我正在尝试将 UID 添加到当前用户的数据库中 这是我的代码:
const friendadd = async() =>
// get the users field
const friendlist = firebase.firestore().collection('users').where("UID", "==", firebase.auth().currentUser.uid).get();
const addfriend = await friendlist.update(
"FriendsList.yVHnHIqhsOYbVbWOM6TbjpU4N3x1":true
)
friendadd()
这就是我的火力基地的样子
通过使用上面的代码,它不会以某种方式更新该字段。但如果我对文档进行硬编码,它将起作用:
const friendlist = firebase.firestore().collection('users').doc('CgQklWWClMJdoOvU4pEk')
如何获取当前用户并更新字段?
【问题讨论】:
【参考方案1】:要在FriendsList
字段中添加条目,您可以use an arrayUnion
operation:
friendlist.update(
FriendsList: firebase.firestore.FieldValue.arrayUnion(
uid: "uidOfItemToAdd",
bio: "bioOfItemToAdd"
)
);
更新:
此代码将friendlist
设置为Promise<QuerySnapshot>
:
const friendlist = firebase.firestore().collection('users').where("UID", "==", firebase.auth().currentUser.uid).get();
处理这些文档并更新每个文档:
friendlist.then((querySnapshot) =>
querySnapshot.forEach((doc) =>
doc.ref.update(...); // ? here goes the same code as above
);
);
【讨论】:
嗨弗兰克,我试过这种方式,但仍然没有更新。我想知道是不是因为const friendlist = firebase.firestore().collection('users').where("UID", "==", firebase.auth().currentUser.uid).get();
这条线?它没有进入文档?
因为如果我对 .doc 进行硬编码,它将更新。 const friendlist = firebase.firestore().collection('users').doc('CgQklWWClMJdoOvU4pEk')
。如何获取当前文档?
是的,这行不通。我更新了答案中的代码,但强烈建议花一些时间在文档中处理查询:firebase.google.com/docs/firestore/query-data/…,或在代码实验室中:firebase.google.com/codelabs/firestore-web
非常感谢。对于更新,有没有办法找到其他人的uid?并将其添加到当前用户的 FriendsList 中?以上是关于如何为firebase字段添加价值的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Flutter Web 添加 Firebase 预构建的身份验证 UI?
Swift 如何为使用 Firebase 投票的用户添加 5 星评分
如何为 Firebase (Kotlin) 创建自定义身份验证