私はこの木を持っています:
root/companyId/customers および root/companyId/orders
そしてそれ以下の3人の顧客、のように
ルート/companyId/customers/IdCustomer/CustomerData
私はすべてのイベントに添付します:
[sharedInstance.root observeEventType:FEventTypeChildChanged withBlock:^(FDataSnapshot *snapshot) {
NSLog(@"Data get: %@", snapshot.value);
}];
[sharedInstance.root observeEventType:FEventTypeChildRemoved withBlock:^(FDataSnapshot *snapshot) {
NSLog(@"Removed: %@", snapshot.value);
}];
[sharedInstance.root observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
NSLog(@"Added: %@", snapshot.value);
}];
ルート/会社で。
テーブルがいつ変更され、どのレコードが変更されるかを知る必要があります。
ただし、FEventTypeChildChanged
顧客が 1 人だけ変更された場合でも、完全なサブツリーを入手してください。FEventTypeChildRemoved
単一の顧客を削除するときではなく、顧客ツリーを削除する場合にのみ発生します。FEventTypeChildChanged
削除されたときに発火しますが、削除されたレコードは表示しませんが、削除されたレコードのない完全なサブツリーを表示します。新しいレコードを追加するときにも発火しますがFEventTypeChildAdded
、発火しません。
「顧客」ツリーのみを監視して 1 つの値を変更すると、FEventTypeChildChanged で顧客のリスト全体を取得します。変更する単一のレコードのみが必要です。
だから、これをどのように配線するか理解していないことは明らかです。追加、変更、削除イベントのレコードごとにテーブルごとに通知を受け取り、サブツリー全体を取得せず、既に同期されているデータを再処理したい (firebase ダッシュボードの動作方法と同様)。