【问题标题】:firebase retrieve user data swiftfirebase 快速检索用户数据
【发布时间】:2016-06-06 04:09:06
【问题描述】:

我目前在使用 firebase 时遇到了一些问题,想知道是否有人可以帮助我。目前我有一个应用程序,有很多用户保存他们输入的数据。所有这些都是数字。数据库正在保存我希望它保存的方式。它通过一个键保存,并且在键中具有 UID 月份和年份以及他们正在保存的数字。

我的问题是: 如何检索数据以便它只提取用户保存的内容?如何使数据库仅检查当前用户保存的数据,然后允许检索该数据。我已经在规则中设置了这个,用户必须经过身份验证才能读取和正确。

谁能指出我正确的方向,我已经阅读了所有文档并尝试了很多示例,但我仍然无法弄清楚。

提前感谢您的帮助

【问题讨论】:

    标签: swift firebase


    【解决方案1】:

    我如何检索数据,以便它只提取用户的内容 保存了吗?

    如何让数据库只检查当前保存的数据 用户,然后允许它被检索。

    这些问题略有不同,但似乎问的是同一件事。

    从你的问题假设,结构如下

    firebase_key_0
       user_id: uid_0
       month:   06
       number:  42
    firebase_key_1
       user_id: uid_1
       month:   03
       number:  .14
    

    然后是一个基本的firebase查询来获取特定的数据;这是获取用户 uid_1 号码的代码:

    ref.queryOrderedByChild("user_id").queryEqualToValue("uid_1")
         .observeSingleEventOfType(.Value, withBlock: { (snapshot) in
            if ( snapshot.value is NSNull ) {
                print("not found")
            } else {
                for child in snapshot.children {
                    let n = child.value["number"] as! String
                    print(n) //prints .14
                }
            }
    })
    

    包括一些额外的错误检查以及能够处理 .Value 返回多个子节点。例如,如果 uid_1 存储了多个数字,这将检索所有数字并打印每个数字。

    当前用户的uid会在登录时从他们的authData.uid中获取。

    【讨论】:

    • 感谢您的回答...确实有效。基于同样的理论,我确实有另一个问题。你能基于两个节点拉。例如,我可以提取用户保存的数据以及他们在相同样式代码中保存的月份,以便更好地对数据进行排序。使用您的示例“3 月的 uid_1”“3 月”的值为 0.14... 6 月的 uid_0“6 月”的值为 42”?再次感谢您对我的帮助很大
    • 没关系,我想通了...您的帮助确实使我走上了正轨...再次感谢,我很感激。
    • @Icculus 太棒了!如果它帮助了你,它可能会帮助其他人,所以不要忘记接受答案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2011-02-09
    • 1970-01-01
    相关资源
    最近更新 更多