2017-05-02 9 views
0

これは、上記のコードは、2つのDatabaseReferenceオブジェクトを有する例示的なプログラムどの子供がfirebaseに追加されたかを特定するには?

public class Demo implements ChildEventListener{ 

     public void onCreate(Bundle b){ 

      super.onCreate(savedInstanceState); 

      databaseRef1.addChildEventListener(this); 
      databaseRef2.addChildEventListener(this); 

     } 
     @Override 
     public void onChildAdded(DataSnapshot dataSnapshot, String s) { 

      // here i want to identify whose child has been added 
      // (databaseRef1 or databaseRef2). 
     } 

     @Override 
     public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

     } 

     @Override 
     public void onChildRemoved(DataSnapshot dataSnapshot) { 

     } 

     @Override 
     public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    } 

あります。どちらもchildEventListenerを追加しました。

onClickListenerメソッドでは、このようなことを行います。

Firebaseでこれを区別する方法はありますか?

@Override 
    public void onClick(View view) { 

     switch (view.getId()) { 

      case R.id.button1: { 
       return; 
      } 
      case R.id.button2: { 
      } 
    } 
+1

リスナを別の場所にアタッチする場合、 'dataSnapshot.getRef()'を見ることで、リスナが呼び出された場所を特定することができます。 –

+0

また、サーバータイムスタンプを使用して、前回追加した子供の確定魔女 – Hamza

+0

あなたの返事をありがとうございました... 'getRef'メソッドはDatabaseReferenceオブジェクトを返します..' switch case'を使用して別の操作を実行する方法 –

答えて

1

あなたは子供はあなたがこのようgetRefメソッドを使用してonChildAdded方法からdataSnapshotをチェックする必要が追加されていた場所から確認するために、さまざまな場所のためaddChildEventListenerを使用する場合:

dataSnapshot.getRef(); 

がそれを願っています助けてください。

+0

ありがとうあなたの返事のために... 'getRef'メソッドはDatabaseReferenceオブジェクトを返します..そこに' switch case'を使って別の操作を実行する方法 –

+1

はい、そうです、 'getRef()'は 'DatabaseReference'オブジェクトを返します。あなたは '参照 'を抽出することができます。最初の参照を使用した場合、 'getRef() 'は最初の参照を示す' DatabaseReference'オブジェクトを返します。同じことが二番目のものです。そして、このチェックは 'onChildAdded'メソッドで行うことができます。 'view.getId()'を使うと、クリックされた 'view'のidを取得したいと考えていますが、この場合はビューはありません。 –

+0

これは明らかです...ありがとうございました... –

関連する問題