2017-02-08 7 views
0

私は自分のプロパティを持つオブジェクトを正しい方法でデータベースに送信する方法はありますか?オブジェクト全体をFirebaseデータベースに送信するにはどうすればいいですか?

のプロパティを持つオブジェクトを言ってみましょう:私は「人」親として新しい子を得るでしょう、新しい人を追加するたびに

enter image description here

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) 

データベースは次のようになります必要があります。

ありがとうございます!

答えて

2

そのためには、まずを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) 

編集:あなたTestクラス内で戻り値の型Anyで一つの機能を追加します。

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

そしてFirebaseこの方法をテストオブジェクトを設定:

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

それはデータベースに[テスト]()送信と同じようになるだろうか?それは私は "それぞれの"ループを使用する必要がありますか? – yerpy

+0

@DerpyUnKnown固有の人物IDを –

+0

Btwに設定したいので、forループを使用する必要があります。 'InvalidFIrebaseData'、理由:setValueはオブジェクトを格納することも、Testを入力することもできません。 NSNUmber型、NSString型、NSDictionary型、NSArray型のオブジェクトしか格納できません。 – yerpy

関連する問題