使用 Firebase 和 Swift 从查询中获取信息 [重复]

Posted

技术标签:

【中文标题】使用 Firebase 和 Swift 从查询中获取信息 [重复]【英文标题】:Grabbing information out of a query with Firebase and Swift [duplicate] 【发布时间】:2016-06-23 07:37:01 【问题描述】:
 var usernameEntered = self.textField.text!
 var databaseReferenceQuery = DataService.ds.REF_USERS.queryOrderedByChild("username").queryEqualToValue(usernameEntered).observeSingleEventOfType(.Value, 
    withBlock:  (snapshot) in

        if ( snapshot.value is NSNull ) 

         else 
            print(snapshot.key)
            print(snapshot.value.)
        
    , withCancelBlock:  (error) in
            // An error occurred
    )

这就是我所拥有的。

我的 firebase 数据库设置如下:

Users
    20394802938lsjfkjaweli (the uid)
         username: Bob
    0skjflakjlkwjf93j09
         username: Bobby

通过运行该查询,我正在搜索用户名并检查它是否等于输入到文本字段中的内容。

当我执行 print(snap.value) 之类的操作时,我会得到“用户名:(如果与用户名匹配,我在文本字段中输入的任何内容)

我需要的是能够获取与该用户名关联的用户 ID。

使用 snapshot.key 为我提供了“用户”。我如何获得低于该级别的一级?

【问题讨论】:

100% 复制到 t。我的错,谢谢你的发现! 【参考方案1】:
 for child in snapshot.children 
  let key = child.key as String
  print("this key \(key)")

获取返回的快照并将变量 key 设置为孩子的 key,在本例中为 UID,

【讨论】:

以上是关于使用 Firebase 和 Swift 从查询中获取信息 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

查询和 Firebase 中的位置(swift 3)

Swift 5 Firebase 按子/键查询

Firebase 查询结果 SWIFT 的奇怪行为

Firebase 查询 2 级深度,无需完整参考 swift

Swift 中带有过滤器的高级 Firebase 查询

Swift - 如何在 Firebase 上将排序查询创建为降序?