Firebase Erreur Permission denied
Je suis Très débutant à firebase et essayer d'obtenir la valeur de ma base de données.
mais il en me montrant même erreur à chaque fois.
W/SyncTree: Listen at /child failed: FirebaseError: Permission denied
Mon firebase règles
{
"Condition" : "sunny",
"child" : 5
}
mon Androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mohit.firebase" >
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
>
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Mon mainactivity.java
package com.mohit.firebase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.firebase.client.DataSnapshot;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import com.firebase.client.ValueEventListener;
public class MainActivity extends AppCompatActivity {
TextView tv;
Button bt1;
Button bt2;
Firebase mRootRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.button);
bt1 = (Button) findViewById(R.id.button);
bt2 = (Button) findViewById(R.id.button2);
Firebase.setAndroidContext(this);
mRootRef = new Firebase("https://superb-flag-126719.firebaseio.com/");
Log.d("fb","Firebase Object: " + String.valueOf(mRootRef));
}
@Override
protected void onStart() {
super.onStart();
Firebase mchild = mRootRef.child("child");
mchild.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String condition = (String) dataSnapshot.getValue();
Log.d("fb","String get: " + condition);
tv.setText(condition);
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
}
mon BuildGraddle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.mohit.firebase"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.firebase:firebase-client-android:2.5.2+'
}
j'ai vérifié mon firebase url. Il est Parfaitement Correct.
- Pouvez-vous poster un exemple de structure de base de données? Aussi, êtes-vous la mise en œuvre des règles de sécurité par hasard???
- Actuellement, les règles par défaut dans firebase permet les opérations de lecture et écriture uniquement pour des utilisations autorisées.
Vous devez vous connecter pour publier un commentaire.
C'est parce que vous n'êtes pas autorisé à la Base de données, consultez l'Onglet Règles en temps réel de la base de données
Si c'est
Cela signifie que seuls les utilisateurs autorisés peuvent écrire et lire les Données.
Changer de
Permet à quiconque de passer la Base de données
Quand pour la Production assurez-vous d'utiliser le premier
Cela signifie que le nœud "enfant" n'a pas d'autorisation d'accès.
Pour plus de sécurité approche, définir la règle comme suit: