2017-04-19 2 views
1

にchildChanged Firebaseデータベース・イベントから返さ:スナップショットは、ノードが変更されたとき、私はFirebaseからデータをフェッチ私のアプリでiOSの

handle = ref?.child("orders").child("4").observe(.childChanged, with: { (snapshot) in   
    if snapshot.key == "price" { 
     print("price: \(snapshot.value)") 
    } 
    if snapshot.key == "orders" { 
     print("orders: \(snapshot.value)") 
    }         
}, withCancel: nil) 

しかし、上記の機能は、実際にそれを行うための方法ですか?

返される値を確認するためにifステートメントを設定しようとしましたが、その値をsnapshot.valueから取得しましたが、すべての値を一度に変更すると心配します。snapshot.valueから来ているノードからはわかりません。

+0

本当に 'ref'が非nilであると思うなら、代わりに' ref! 'を使うべきです;-) –

+0

@PauloMattosチップをありがとう!しかし、この場合、私は接続を開くべきかどうかを決定するロジックを持っています。だから、私は特定の項目にのみ接続を開く:) – Kiow

答えて

2

はい、トラッキングのために、子供ノードの変更それを行う方法です!

Firebaseドキュメント、対応するchildChangesデータベース・イベントのために、更なる詳細を提供:

は、リスト内の項目への変更を聞きます。このイベントは、子ノードが変更されるたびにトリガーされます。これには、子ノードの子孫への変更が含まれます。イベントリスナーに渡されたFIRDataSnapshotには、子の更新データが含まれています。このよう

snapshot.key更新子ノードとsnapshot.value対応するデータを識別する。