【问题标题】:Xcode Objc Firebase Database Adding Multiple Childs to a NodeXcode Objc Firebase 数据库向节点添加多个子节点
【发布时间】:2017-09-30 22:41:15
【问题描述】:

我正在尝试向我的 firebase 数据库添加一个子节点和一个子节点,以便我的数据库如下所示:

{    
    "users": {
        "user.uid": {
            "userEmail":"blah@gmail.com.com",
            "project1": {
                "projectName":"1700 Broadway"
            }
        }
    }
}

我的代码如下:

//create a root ref
rootRef = [[FIRDatabase database] reference];

//create a child of the rootRef
FIRDatabaseReference *usersRef = [rootRef child:@"users"];               

//Create a child under the users ref
FIRDatabaseReference *newUserRef = [usersRef child:user.uid];

//set a value of the dictionary for which UID is the key
[newUserRef setValue:@{@"userEmail":emailString}];

//For some reason this reference isn't being created in FB
//Create a child under the users ref
FIRDatabaseReference *projectRef = [usersRef child:@"project1"];

//set a value of the dictionary for which project1 is the key
[projectRef setValue:@{@"projectName":projectName}]; 

但是,我在 firebase 中的数据库如下:

{    
    "users": {
        "user.uid": {
            "userEmail":"blah@gmail.com.com",
        }
    }
}

在控制台上看起来像这样:

mastertracker-9cf47addclose
    users
        L0gEKh4f0WctbioRddiziRpfwgC3
            userEmail: "testemail@gmail.com"

谁能帮助解释为什么“project1”子节点没有在用户 ID 节点下被引用,这应该使数据看起来像这样?

mastertracker-9cf47addclose
    users
        L0gEKh4f0WctbioRddiziRpfwgC3
            userEmail: "testemail@gmail.com"
            project1
                projectName: "test project"

谢谢,

【问题讨论】:

  • 尝试使用FIRDatabaseReference *projectRef = [newUserRef child:@"project1"];而不是FIRDatabaseReference *projectRef = [usersRef child:@"project1"];
  • ^^ 工作完美,谢谢@3stud1ant3
  • 太好了,我已经添加了答案,如果解决了你的问题请采纳

标签: objective-c database xcode firebase firebase-realtime-database


【解决方案1】:

由于您想将project1 添加为userEmail 的兄弟,所以您应该使用

 FIRDatabaseReference *projectRef = [newUserRef child:@"project1"]; 

而不是

FIRDatabaseReference *projectRef = [usersRef child:@"project1"];

【讨论】:

    【解决方案2】:

    您在创建时已初始化 newUserRef 但未指定键。 我不能在 Objective 中给出代码,我使用的是 Swift 3,但你应该找到一种方法来指定密钥,否则它会生成一个带有自动计算密钥的位置。

    child("key").set(value).
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      相关资源
      最近更新 更多