json - 从 FireBase JSON swift 中检索自动 ID

标签 json swift firebase

我正在使用循环将名称上传到 FireBase 中的表,该循环使用 childByAutoID() 方法添加它们,如下所示:

for dependent in dependentsArray
    {
         let dependentName = dependent.text.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())

         CURRENT_USER_DEPENDENTS_URL.childByAutoId().setValue(["name" : dependentName])
    }

然后在我的仪表板中看起来像这样:

enter image description here

然后我像这样观察从属表:

CURRENT_USER_DEPENDENTS_URL.observeEventType(.Value, withBlock: { snapshot in
        print(snapshot.value)
        self.dependentsJSON = snapshot.value as? [String : [String : String]]

        }, withCancelBlock: { error in
            print(error.description)
    })

上面代码中的 print 语句生成这个 JSON 字典:

{
    "-KH3Cg0KFvMNEULYUezv" =     {
        name = one;
    };
    "-KH3Cg0LeTs54nbYonmv" =     {
        name = two;
    };
    "-KH3Cg0LeTs54nbYonmw" =     {
        name = three;
    };
    "-KH3Cg0LeTs54nbYonmx" =     {
        name = four;
   };
}

很简单,我希望能够从这个 JSON 字典中获取每个依赖的 UID,这样我就可以在 NSUserDefaults 中创建一个依赖 UID 数组,如下所示以及像这样对 JSON 字典进行排序:

    if let firstName = self.dependentsJSON?["-KH3Cg0LeTs54nbYonmx"]?["name"] {
        print(firstName)
}

旁注: 我可以在创建 UID 并将其添加到数据库时保存 UID,但事实是 UID 需要在运行时获取,以防用户卸载应用程序。

最佳答案

您可以执行以下操作

var idList = [String]()

CURRENT_USER_DEPENDENTS_URL.observeEventType(.Value, withBlock: { snapshot in
    //print(snapshot.value)
    self.dependentsJSON = snapshot.value as? [String : [String : String]]

    for dependent in self.dependentsJSON{
         idList.append(dependent.key)
    }

    }, withCancelBlock: { error in
        print(error.description)
})

然后您将访问这些值

if let firstName = self.dependentsJSON?[idList[0]]?["name"] {
    print(firstName)
}

关于json - 从 FireBase JSON swift 中检索自动 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37065177/

相关文章:

PHP 通过 'Key' => 'Value' 列回显所有表行 - 经验

iphone - 从扩展调用 UIViewController 中的函数

swift - 通过电子邮件发送密码重置代码 - Swift + Firebase

firebase - 软件包 cloud_firestore 没有匹配 >=0.7.0 <0.8.0 的版本

c# - 如何解码 GMail API 返回的 message.parts?

ruby-on-rails - JSON 字符串到 rails 哈希

mysql - 如何创建 MySQL 函数来检查 JSON 有效性?

ios - 在 Swift 中的 tableviewcell 之间添加空间

ios - 使用 Alamofire 将文件上传到 amazon s3

java - 使用 Android 的 Firebase 电子邮件和密码身份验证 - 用户注册