gpt4 book ai didi

ios - getDocuments() 函数多次获取相同的数据

转载 作者:行者123 更新时间:2023-11-28 23:19:33 24 4
gpt4 key购买 nike

我正在从关系数据库迁移到 NOSQL,并且我已经阅读了整个 Firebase 文档,现在我正着手进行一个研究项目以了解更多相关信息。

我想做的是:我有一个 user_profileAuth 创建的每个用户都将获得一个文档。

在本文档中,我有一个名为 groups 的数组,它显示了该用户加入的所有组。

我需要根据登录的用户检索该组的列表。

*This is my current DB*

My DB

然后我使用 getDocuments() 从数据库中检索此信息。

我需要得到的是一个带有 group_id 的字符串数组(根据第二张图片)。

我当前的代码正在检索我需要的信息,但它将所有 ID 作为一个对象获取。因此,如果我有 4 个组,它将检索 4 个对象,其中包含用户已加入的所有 4 个组。

func getGroups() -> [String] {

let currentUser = Auth.auth().currentUser?.uid
let db = Firestore.firestore()
var groups = [""]
var groupsArray = [""]

db.collection(K.Collections.userProfile)
.whereField(K.DBFields.UserProfile.userId, isEqualTo: currentUser!)
.getDocuments { (snapshot, error) in
if let error = error {
print(error)
} else {

for document in snapshot!.documents {
groups = (document.get("groups")) as! [String]
//groupsArray.append(groups)
print("Group ID: \(groups)")
}
}
}
return groups
}

我得到的结果如下:

roup ID: ["8m0W7cQLuSjQCJes2fpL", "l84GnZSpIUs43cXO13Qm", "unb0LPYOttDN6WogRXDt", "ohG09dwyVrAd6GcXa6mx"] Group ID: ["8m0W7cQLuSjQCJes2fpL", "l84GnZSpIUs43cXO13Qm", "unb0LPYOttDN6WogRXDt", "ohG09dwyVrAd6GcXa6mx"] Group ID: ["8m0W7cQLuSjQCJes2fpL", "l84GnZSpIUs43cXO13Qm", "unb0LPYOttDN6WogRXDt", "ohG09dwyVrAd6GcXa6mx"] Group ID: ["8m0W7cQLuSjQCJes2fpL", "l84GnZSpIUs43cXO13Qm", "unb0LPYOttDN6WogRXDt", "ohG09dwyVrAd6GcXa6mx"]

我尝试了很多不同的方法来尝试获取正确的数据,但都没有奏效。

再一次,我只想得到这个数组作为结果:变量组 = ["8m0W7cQLuSjQCJes2fpL","l84GnZSpIUs43cXO13Qm","unb0LPYOttDN6WogRXDt",“ohG09dwyVrAd6GcXa6mx”]

非常感谢莱昂纳多·达马托

最佳答案

您正在从 groups 中检索值作为 [String](字符串数组)。但是随后您将该字符串数组打印为单个值。

如果你想在 Swift 中访问 [String] 的各个元素,你可以遍历它:

groups = (document.get("groups")) as! [String]
for group in groups {
print("Group ID \(group).")
}

另请参阅 accessing array values 上的 Swift 文档.

关于ios - getDocuments() 函数多次获取相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59837855/

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