0

この例は、国にリストされている駐車スペースです。 userParkingDistanceMapでデータベースを構成する理由は、現在のユーザーとすべての駐車スペースの距離でソートされているためです。Firebase Consoleデータベースのルール:データベースルールで次のデータベース構造をインデックスする方法

データベースクエリは.orderByChild("userParkingDistanceMap/" + getUid())です。

これで、データベースルールでこのuserParkingDistanceMapをどのようにインデックスできますか?それはpsudoのようなものですので、

ValueEventListner valueEventListner = new ValueEventListener() 
    { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) 
     { 
     for(DataSnapshot childDataSnapshot: dataSnapshot) 
      { 
      DatabaseReference parkindId = ref.child(dataSnapshot.getKey); 
      for(DataSnapshot parkingIdSnapshot : childDataSnapshot) 
       { 
       if(parkindIdSnapshot.hasChildren()) 
        { 
        for(DataSnapshot distanceMap : parkingIdSnapshot) 
         { 
         String value = distanceMap.getValue(String.class); 
         } 
        } 
       } 
      } 
     } 
    @Override 
    public void onCancelled(DatabaseError databaseError) 
     {} 
    }); 

まあ、私はちょうど、直接の回答で、このコードを書いた:だから、基本的にあなたが

valueEventListnerがある
final FirebaseDatabase database = FirebaseDatabase.getInstance(); 
DatabaseReference ref = database.getReference("parking"); 


ref.addListenerForSingleValueEvent(valueEventListner); 

のようなもので、参照を初期化している場合があります

"parkingSpacesTokyo" : { 
    "parkingId5" : { 
     "parkingName" : "MY-PARKING-NAME", 
     "parkingQuantity" : 70, 
     "userParkingDistanceMap" : { 
     "uid-uid-uid-uid-uid-uid-uid" : 7983, 
     "9EAiImOh4ZUnqJ7em51u81FukD73" : 9456, 
     "AG84p8KJgANuobRJ5pn1ipxULFB3" : 8336, 
     "yYLVffMFsBQhsGHNWuPOksMDgip2" : 7983, 
     "yp6mZm2SPVhz5pOq57tSEZ40piJ2" : 7983 
     } 
    }, 
    "parkingId6": { 
     ... 
    } 
}, 
"parkingSpacesYOKOHAMA" : { 

} 
+0

は複雑すぎるようです。 – shortstopmin

答えて

0

基本的にあなたはそれについての考えを持っているかもしれません。運が良かった。

+0

申し訳ありませんが、私はFirebaseコンソールでデータベースルールのインデックスを作成しています – shortstopmin

関連する問題