gpt4 book ai didi

javascript - 如何在firebase中保存用户的关注者? react native

转载 作者:行者123 更新时间:2023-12-04 07:14:38 24 4
gpt4 key购买 nike

我的数据库中有两个集合,一个叫 Buyers另一个叫Sellers .每当买家关注卖家时,我都会保存卖家的 Uid在名为 userFollowings 的子集合中在 Buyers收藏。
我怎样才能保存关注者的 Uid?保存买家 uid在名为 userFollowers 的子集合中在 Sellers每次买家跟随卖家时收集?
这是我的代码:


const onFollow = () => {
firebase.firestore()
.collection("Buyers")
.doc(firebase.auth().currentUser.uid)
.collection("userFollowings")
.doc(props.route.params.uid)
.set({})


}
const onUnfollow = () => {
firebase.firestore()
.collection("Buyers")
.doc(firebase.auth().currentUser.uid)
.collection("userFollowings")
.doc(props.route.params.uid)
.delete()
}

最佳答案

您可以使用 batched write ,如下,以这种方式两个写入原子地完成。

  const db = firebase.firestore();

const onFollow = () => {
const buyerID = firebase.auth().currentUser.uid;
const followerID = props.route.params.uid;

const buyerFollowerRef = db
.collection('Buyers')
.doc(buyerID)
.collection('userFollowings')
.doc(followerID);

const sellerFollowerRef = db
.collection('Sellers')
.doc(followerID)
.collection('userFollowers')
.doc(buyerID);

const batch = db.batch();
batch.set(buyerFollowerRef, { foo: 'bar' });
batch.set(sellerFollowerRef, { foo: 'bar' });
batch.commit();
};
对于 onUnfollow功能,使用 batch.delete() .

您还可以使用在 userFollowings 中的文档时触发的云函数创建子集合。
如果最终用户没有写入 userFollowers 的权限,这将是可行的方法。 subcollection,因此无法执行上述批量写入。

关于javascript - 如何在firebase中保存用户的关注者? react native ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68846006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com