Nachdem der Benutzer angemeldet und die Sitzung aktiv ist, können Daten aufgrund des Fehlers Berechtigung verweigert nicht gelesen/geschrieben werden. Regeln sind Standard:Standardmäßige Firebase-Berechtigung von Android wird verweigert, selbst wenn der Benutzer authentifiziert wurde
FirebaseAuth funktioniert einwandfrei, und alle Anmeldeinformationen sind zugänglich, aber nichts von root Firebase-Knoten.
Instanz wird ohne Probleme Introduction:
mAuth = FirebaseAuth.getInstance();
Firebase Auth (unter Verwendung von E-Mail und Passwort Schema) Code:
public void signIn(String email, String password) {
mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
showAlert(Values.ERROR, Values.WRONG_EMAIL_OR_PASSWORD_ALERT);
} else {
changeStatus(FirebaseAuth.getInstance().getCurrentUser());
startActivity(new Intent(mTab.getContext(), MainActivity.class));
}
mProgress.hide();
}
});
}
Vor stellte ich einen Firebase Kontext auf:
Firebase.setAndroidContext(mTab.getContext());
Und auch nach erfolgreicher Anmeldung kann ich aufgrund eines Berechtigungsfehlers nicht auf meine Datenbank zugreifen:
public void changeStatus(FirebaseUser user, String status) {
Firebase.setAndroidContext(getContext());
mStatusRef = new Firebase(Values.FIREBASE_ADDRESS + "/statuses/" + user.getUid() + "/");
mStatusRef.setValue(status);
}
oder
public void setLastMessage(final MyViewHolder holder, String uid) {
Firebase.setAndroidContext(mView.getContext());
mMessageRef = new Firebase(Values.FIREBASE_ADDRESS + "https://stackoverflow.com/users/" + mUser.getUid() + "/chats/" + uid + "/message");
mMessageRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
holder.lastMessage.setText(dataSnapshot.getValue().toString());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
Fehler von der Konsole:
W/RepoOperation: setValue at /statuses/ghTGuwjc4saAQqyJgoMONV2Rz483 failed: FirebaseError: Permission denied
W/SyncTree: Listen at /party failed: FirebaseError: Permission denied
Mein JSON Baum hat folgenden Aufbau: Firebase Database tree view from console
app/build.graddle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "GGG.GGG.com.GGG"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
}
repositories {
maven {
url "https://jitpack.io"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.firebase:firebase-client-android:2.5.2+'
compile 'com.google.firebase:firebase-auth:9.2.0'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:cardview-v7:23.0.+'
compile 'com.github.castorflex.smoothprogressbar:library:1.0.0'
compile 'com.yalantis:phoenix:1.2.3'
compile 'com.facebook.network.connectionclass:connectionclass:1.0.1'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.daimajia.easing:library:[email protected]'
compile 'com.daimajia.androidanimations:library:[email protected]'
compile 'com.roughike:swipe-selector:1.0.6'
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
}
apply plugin: 'com.google.gms.google-services'
Meine Anwendung besteht aus MainActivity und ViewPager Widget. Laut Firebase Docs sollte es jedoch keine Rolle spielen, ob die FirebaseAuth-Instanz erreichbar ist, was bedeutet, dass die Sitzung aktiv ist (also authentifiziert).
Vielleicht fehlt mir etwas? Ich habe versucht, Firebase-Dokumente (alles ist sehr klar und leicht zu verstehen) viele Male zu lesen, aber es fühlt sich so an, als ob mein Problem in dem Kontext einzigartig ist.
ich geänderte Regeln zu öffentlichen nur für Entwicklungszwecke, jedoch kann ich meine Datenbank für alle geöffnet werden nicht zulassen, nach der endgültigen Version veröffentlicht ...
Was ein Problem sein könnte?
Ich benutze Firebase Console und diese Android Setup-Anleitung:
Aus irgendeinem Grund, den ich nicht in der Lage bin meine graddle Datei auf die neueste Version Firebase 'com.google.firebase:firebase-core:9.4.0'
Abhängigkeit zu aktualisieren. Es wird mit dem Fehler "Kann nicht aufgelöst werden" kompiliert.
fügen Sie bitte Ihre firebaseauth Code –
Ohne den [minimale Code, der das Problem reproduziert] zu sehen (http://stackoverflow.com/help/mcve), können wir nur spekulieren. –
Danke für Ihre Antworten! Hinzufügen von Details jetzt – NickitaX