Firebase权限被拒绝错误

我是非常初学firebase,并试图从我的数据库中获得价值。

但每次都会显示相同的错误

W/SyncTree: Listen at /child failed: FirebaseError: Permission denied 

我的firebase规则

  { "Condition" : "sunny", "child" : 5 } 

我的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> 

我的mainactivity.java包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) { } }); } } 

我的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+' } 

我检查了我的firebaseurl。 这是完全正确的。

Solutions Collecting From Web of "Firebase权限被拒绝错误"

这是因为您没有对数据库进行授权,请检查实时数据库中的“规则”选项卡

如果它是

 { "rules": { ".read": "auth != null", ".write":"auth != null" } } 

这意味着只有授权用户才能写入和读取数据。

改成

 { "rules": { ".read": true, ".write":true } } 

允许任何人写入数据库

在进行生产时,一定要使用第一个