をしようとしている別の方法で、あなたは「友人の削除要求」のための特別なノードを作成することができますので、クライアントはこれだけのノードに書き込み、その後、サーバーは削除を処理します。
まず、サーバーこのデータベース構造で
{
users: {
a: {
friends: {
b:Jhon,
c:Ted
},
}
b: {
friends: {
a: Tom
}
},
c: {
friends:{
a: Tom
}
}
}
friend_removal_request : {
<push_id>: {
first_user: a,
second_user: b
}
}
}
- を見ては、使用して(利用者が自分の友人を削除したい場合は、そのクライアントが新しいエントリを書き込み
friend_removal_request
- に
child_added
リスナーを添付しますDatabaseReference.push()
メソッド)からfriend_removal_request
までです。 first_user
は、second_user
は、サーバーが今null
値を設定することによって、彼らの友情を削除するには進むことができます(またはremove()
を呼び出す)/users/$first_user/friends/$second_user
と/users/$second_user_user/friends/$first_user
- に続いて、サーバーでのリスナーが発射される彼らの友人のid
- ユーザーのIDです友情が削除されると、サーバーはその要求を削除します。
snapshot.ref.remove()
リスナーはノードにのみ接続されます。
これは私の考えです。あなたがこの方法に別の懸念がある場合は教えてください。 これが役に立ちますようお願いいたします:)
「child_changed」イベントを追加するのはどうですか?そのイベントは、各子(またはユーザー)のデータが変更/更新されるたびにトリガーされます。 – Wilik
あなたのやり方で@Wilik私は変数にすべてのデータを保持しなければならず、すべての変更で何が変更されたかを知る必要があります。 私はそれが効率的ではない –
うまくいけば、唯一の方法はすべての 'userid/friends'に' child_removed'イベントを付けることです。あなたのコードはサーバにあるとにかく – Wilik