0

Ich habe meine Android-App so konfiguriert, dass sie sich beim Firebase anmeldet, und das ohne Probleme. Ich habe Login-Aktivität erstellt und nach erfolgreicher Anmeldung gehe ich zu einer neuen Aktivität über. Später in einer meiner AsyncTask Ich frage die Datenbank Ich habe die Berechtigungsregeln geändert, so dass nur authentifizieren Benutzer in der Lage sein zu lesen/schreiben ... Aber ich bekomme immer noch die Erlaubnis verweigert, auch nach erfolgreichem Login.Firebase: Fehler bei der Datenbankauthentifizierung

Muss ich die UID irgendwo in der Abfrage platzieren?

Dies ist eine meiner Anfragen:

Query personFaceSizeHeightQueryEndAt = myRef.orderByChild("mCalculateFaceSizeHeight") 
       .endAt(faceDetails.getmCalculateFaceSizeHeight()) 
       .limitToLast(1); 
     personFaceSizeHeightQueryEndAt.addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
       if (dataSnapshot.exists()) { 
        String personName = dataSnapshot.getKey(); 
        Log.d(TAG, "personFaceSizeHeightQueryEndAt:onChildAdded:" + personName); 
        if(checkIfPersonAlreadyFoundInQueryFaceSizeHeight(personName) == false){ 
         Person person = dataSnapshot.getValue(Person.class); 
         checkNumberOfMatchesAndWriteToTheDisk(personName,person); 
        } 
       } 
      } 

      @Override 
      public void onChildChanged(DataSnapshot dataSnapshot, String s) { 
       if(dataSnapshot.exists()) { 
        Log.d(TAG, "personFaceSizeHeightQueryEndAt:onChildChanged:" + dataSnapshot.getKey()); 

       } 
      } 

      @Override 
      public void onChildRemoved(DataSnapshot dataSnapshot) { 
       if(dataSnapshot.exists()) { 
        Log.d(TAG, "personFaceSizeHeightQueryEndAt:onChildRemoved:" + dataSnapshot.getKey()); 
       } 
      } 

      @Override 
      public void onChildMoved(DataSnapshot dataSnapshot, String s) { 
       if(dataSnapshot.exists()) { 
        Log.d(TAG, "personFaceSizeHeightQueryEndAt:onChildMoved:" + dataSnapshot.getKey()); 
       } 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 
       Log.d(TAG, "personFaceSizeHeightQueryEndAt:DatabaseError:" + databaseError.getMessage()); 

      } 
     }); 
    } 

Hier ist die Nachricht von der Login-Aktivität, wenn die Anmeldung erfolgreich

07-20 06:39:31.050 4806-4806/com.example.erang.facerecognition D/EmailPassword: signInWithEmail:success 

Hier meine DataBase Regeln sind:

{ 
    "rules": { 
     "People": { 
     "users": { 
     "$uid": { 
     ".read": "auth.uid === $uid", 
     ".write": "auth.uid === $uid" 
     } 
    Later there are the indexes ... 
+0

Ich erhalte DefaultFirebaseUser. com.google.firebase.auth.internal.DefaultFirebaseUser Wenn läuft FirebaseUser Muser = FirebaseAuth.getInstance() GetCurrentUser(); aus der Abfrage Aufgabe Nicht mein Benutzer ... –

+0

Ich glaube, dies ist die Antwort: https://stackoverflow.com/questions/39992744/firebase-link-user-authentication-to-another-activity –

+0

ich habe UID, es ist meine UID, also bin ich mir nicht sicher, warum ich Zugriff verweigert bekomme –

Antwort

0

Sie Schließen Sie Ihren Emulator und führen Sie ihn erneut aus.

Verwandte Themen