如何将整个对象发送到Firebase数据库?

时间:2017-02-08 11:37:08

标签: ios firebase swift3 firebase-realtime-database

如何以正确的方式将具有自己属性的对象发送到数据库?

让我们说具有属性的对象:

class Test {
 var name:String
 var age:Int

 init(name: String, age: Int) {
  self.name = name
  self.age = age
 }
}

(...)
let obj = Test(name: "Jack", age: 25)
let databaseRef = FIRDatabase.database().reference().child("Person")

databaseRef.setValue(obj)

数据库应如下所示:

enter image description here

每当我添加新人时,我都会把新孩子当作“人”父母。

提前致谢!

1 个答案:

答案 0 :(得分:3)

为此,首先您需要使用personId生成唯一childByAutoId(),然后将人员详细信息添加到其中。

let newPersonRef = FIRDatabase.database().reference().child("Person").childByAutoId()
let obj = Test(name: "Jack", age: 25)
newPersonRef.setValue(obj.toDictionary())

如果您还想要新创建的人的唯一引用ID:

let newPersonRef = FIRDatabase.database().reference().child("Person").childByAutoId()
print(newPersonRef.key)

修改:在Any课程中添加一个返回类型为Test的函数。

func toDictionary() -> Any {
    return ["name":name, "age": age] as Any
}

然后以这种方式在Firebase中设置测试对象:

let obj = Test(name: "Jack", age: 25)
newPersonRef.setValue(obj.toDictionary())