0

L'exemple est la liste des espaces de stationnement dans un pays. La raison de structurer la base de données avec un userParkingDistanceMap est le tri par distance entre l'utilisateur actuel et tous les espaces de stationnement.Règles de base de données de la console Firebase: comment indexer la structure de base de données suivante dans les règles de base de données

La requête de base de données est .orderByChild("userParkingDistanceMap/" + getUid()). Alors, comment pourrais-je indexer ce userParkingDistanceMap dans les règles de la base de données?

"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

semble trop compliqué. – shortstopmin

Répondre

0

Donc, fondamentalement, vous pourriez avoir initialisé la référence par quelque chose comme

final FirebaseDatabase database = FirebaseDatabase.getInstance(); 
DatabaseReference ref = database.getReference("parking"); 


ref.addListenerForSingleValueEvent(valueEventListner); 

où valueEventListner est:

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) 
     {} 
    }); 

Eh bien, je viens d'écrire ce code, en réponse directe il est une sorte de psudo code si fondamentalement vous pourriez avoir eu l'idée à ce sujet. Bonne chance.

+0

Désolé, ce que je veux dire, c'est l'indexation des règles de base de données dans la console Firebase – shortstopmin