gpt4 book ai didi

ios - 在 firestore 中存储字典值时存在逻辑问题

转载 作者:行者123 更新时间:2023-11-29 05:37:02 24 4
gpt4 key购买 nike

我正在尝试重新创建 Instagram 关注者和关注功能,但似乎存在逻辑错误。代码中没有错误。当按下“关注”按钮时,我现在正在做的是创建一个名为“用户关注”的集合,将“当前 UID”添加为“文档 ID”,然后将以下目标用户数据存储为 [targetuid: 1]。同时,我创建一个名为“user-followers”的集合,添加“目标 UID”作为“文档 ID”,然后将关注者数据存储为 [currentuid:1]。这里的问题是,当只关注一个用户时,它会起作用。当我尝试关注另一个用户时,现有的关注用户数据会被我刚刚关注的新用户覆盖,而不是附加数据。

示例:假设当前用户为A,user1 = B,user2 = C当我关注 user1 和 user2 时,我在 firestore 中的数据库应反射(reflect)为:

user-following -> A -> [B:1,C:1]
user-followers -> B -> [A:1]
user-followers -> C -> [A:1]

上面的内容翻译为集合 -> documentID -> 字典值问题是我没有得到上面的结果。相反,当我关注 user2 时,user1 的值会被覆盖。所以只存储了一个字典值。

我知道问题出在我尝试在文档 ID 下创建字段的方式中。我知道我可以创建一个字典并附加值,但我认为对于一个简单的解决方案来说,这是很多代码。

func follow(){
guard let currentUid = Auth.auth().currentUser?.uid else
{return}
guard let uid = uid else {return}
self.isFollowed = true

// Add followed user to current user-following structure
Firestore.firestore().collection("user-
following").document(currentUid).setData([uid:1])

// Add current user to followed user-follower structure
Firestore.firestore().collection("user-
followers").document(uid).setData([currentUid:1])
}

最佳答案

没关系。意识到我必须使用合并。

Firestore.firestore().collection("user- 
following").document(currentUid).setData([uid:1], merge: true)

关于ios - 在 firestore 中存储字典值时存在逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56946320/

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