2017-12-12 9 views
-1

2つのテーブル(リクエストとドライバ)があります。すべてのリクエストの子(riderId)は異なる電話番号を持ちます。 driversWorkingテーブルからriderIdの場所(経度と緯度)を取得するために、現在のRequestsキーから現在のriderIdを取得するにはどうすればいいですか?以下はFirebaseから別のテーブルのアイテムを比較して取得する方法

私のデータベースです:

答えて

0

あなたはネストされたクエリを使用してこれを達成することができます。 userId

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference yourRef = userIdRef.child("users").child(userId); 
ValueEventListener valueEventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     String riderId = dataSnapshot.child("riderId").getValue(String.class); 

     DatabaseReference ref = rootRef.child("driversWorking").child(driverId).child("l"); 
     ValueEventListener eventListener = new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       for(DataSnapshot ds : dataSnapshot.getChildren()) { 
        double zero = ds.child("0").getValue(Double.class); 
        double one = ds.child("1").getValue(Double.class); 
        Log.d("TAG", zero + "/" + one); 
       } 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) {} 
     }; 
     yourRef.addListenerForSingleValueEvent(eventListener); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
ref.addListenerForSingleValueEvent(valueEventListener); 

:あなたはusersという名前のノードを持ち、同じ時間であなたのFirebaseルートの直接の子であると仮定するとdriversWorkingはまたあなたFirebaseルートの直接の子であると仮定すると、次のコードを使用してくださいはログインしているユーザーのIDで、driverIdはドライバのIDです。あなたが与えた例では、0163640500です。

関連する問題