Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firebase Permission denied Error

I am Very beginner to firebase and trying to get value from my database.

but it showing me same error every time.

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

My firebase rules

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

my 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> 

My 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) {              }         });     } } 

my 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+' } 

i checked my firebase url. It's Perfectly Correct.

like image 990
Mohit Sharma Avatar asked May 27 '16 07:05

Mohit Sharma


People also ask

Why permission DENIED in Firebase database?

Most likely this is because the Database of projects created in the new Firebase Console are readable/writeable only by users that are signed in using Firebase Authentication. Since you're not signing the user in from your code, the database denies you access to the data.


1 Answers

It's because you are not authorized to the Database, check the Rules Tab in the Realtime database

If it's

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

This means only authorized user's can write and read the Data.

Changing to

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

Allows anyone to write the Database

When going for Production be sure to use the first one

like image 192
Veeresh Charantimath Avatar answered Sep 24 '22 18:09

Veeresh Charantimath