Ios Firebase Swift语法
有人能帮我把它从JavaScript转换成Swift 3语法吗 我正在尝试获取特定用户拥有的所有客户端。 我将客户端保存在它们自己的节点中,然后在每个用户中都有一个clientid列表 我相信这段代码会起作用,正如它来自的指南中描述的类似情况一样,数据以相同的方式组织,但它不是快速语法,尤其是.on和.onceIos Firebase Swift语法,ios,firebase,swift3,firebase-realtime-database,Ios,Firebase,Swift3,Firebase Realtime Database,有人能帮我把它从JavaScript转换成Swift 3语法吗 我正在尝试获取特定用户拥有的所有客户端。 我将客户端保存在它们自己的节点中,然后在每个用户中都有一个clientid列表 我相信这段代码会起作用,正如它来自的指南中描述的类似情况一样,数据以相同的方式组织,但它不是快速语法,尤其是.on和.once var usersREF = new Firebase("https://awesome.firebaseio-demo.com/users"); var clientsREF =
var usersREF =
new Firebase("https://awesome.firebaseio-demo.com/users");
var clientsREF =
new Firebase("https://awesome.firebaseio-demo.com/clients");
var currentUsersClients = userREF.child("userID").child("comments");
currentUsersClients.on("child_added", function(snap) {
clientsREF.child(snap.key()).once("value", function() {
// Render the clients on the link page.
));
});
以下是Firebase上的数据结构:
我想其他方法可能是获取当前用户的clientID,然后调用所有客户机。通过ClientID过滤它们
或
获取当前用户的clientID,然后遍历它们,使用ID对每个客户机进行特定调用
我只是不知道在for循环中对firebase进行多次这样的调用是否是一种不好的做法。甚至更糟糕的是,提取比所需多得多的数据,然后对其进行过滤
谢谢你的帮助 这将根据您的结构获取uid\u 0的客户端
let userRef = ref.child("users/uid_0")
userRef.observeSingleEvent(of: .value, with: { snapshot in
let userDict = snapshot.value as! [String:AnyObject]
let clientsDict = userDict["clients"] as! [String:AnyObject]
for client in clientsDict {
let clientId = client.key
print(clientId)
}
})
使用此示例代码可以获得所需的结果
func getUsers(forUserID userID: String, completion: @escaping (User) -> Swift.Void, failure: @escaping () -> ()) {
if Auth.auth().currentUser != nil {
Database.database().reference().child("users").child(userID).observe(.childAdded, with: { (snapshot) in
if snapshot.exists() {
let receivedMessage = snapshot.value as! [String: Any]
let name = receivedMessage["name"] as? String ?? ""
let id = receivedMessage["id"] as? Double ?? 0.0
let profileurl = receivedMessage["url"] as? String ?? ""
completion(User(name: name, id: id, url: url))
} else {
failure()
}
})
} else {
failure()
}
}
这实际上不是一个代码编写服务,所以最好尝试编写代码并让我们知道您在哪里运行。请复习。另外,在将来,请将您的firebase结构以文本形式发布,而不是图像-这样它就可以搜索,我们在回答时不必重新键入。在这种情况下,这是超级简单,所以我张贴了一个快速的答案。