我有以下函数循环遍历标记字符串数组。
static func updateTags(tags:Array<String>){
let currentUser = User.current
for tag in tags{
let ref = Database.database().reference().child("tags").child(currentUser.uid).child(?????)
let tag = Tag(title: tag,latestThumbnailURL:somethingnew,latestUpdate: now)
let dict = tag.dictValue
ref.updateChildValues(dict)
}
对于每个标记字符串,我希望它通过标记标题在数据库中查找标记,获取标记ID密钥,对于该特定密钥,使用新的latestThumbnailURL,latestUpdate更新其值。
我陷入困境,因为我无法确定如何通过标签标题查找标签ID,因此我无法形成对特定标签对象的完整引用。我怎样才能做到这一点?
答案 0 :(得分:1)
您似乎需要将问题分解为逻辑步骤!
根据我的理解,您需要先获取用户的tag
子对象。
执行此操作的一种简单方法是首先为您的用户获取所有子项,然后迭代该数据以查找带有新refs的标记以从中获取数据。
ref = Database.database().reference().child("tags").child(currentUser.uid)
ref.observeSingleEvent(of: .value, with: { snapshot in
print(snapshot.childrenCount) items
for rest in snapshot.children.allObjects as! [FIRDataSnapshot] {
print(rest.value)
// Create your new db refs with the tag info
}
})
或者,我建议您迁移到Firebase的Firestore,这样可以更轻松地进行此类查询。