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 ...
Ich erhalte DefaultFirebaseUser. com.google.firebase.auth.internal.DefaultFirebaseUser Wenn läuft FirebaseUser Muser = FirebaseAuth.getInstance() GetCurrentUser(); aus der Abfrage Aufgabe Nicht mein Benutzer ... –
Ich glaube, dies ist die Antwort: https://stackoverflow.com/questions/39992744/firebase-link-user-authentication-to-another-activity –
ich habe UID, es ist meine UID, also bin ich mir nicht sicher, warum ich Zugriff verweigert bekomme –