2016-07-08 81 views
0

我正在使用以下代碼將數據保存到Firebase。但它給予權限拒絕錯誤。這是我的代碼。我遵循了firebase提供的所有說明。數據未使用Firebase保存

buttonSave.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Firebase ref = new Firebase(Config.FIREBASE_URL); 
       String name = editTextName.getText().toString().trim(); 
       String address = editTextAddress.getText().toString().trim(); 
       Person person = new Person(); 
       person.setName(name); 
       person.setAddress(address); 
       ref.child("Person").setValue(person); 
       ref.addValueEventListener(new ValueEventListener() { 
        @Override 
        public void onDataChange(DataSnapshot snapshot) { 
         for (DataSnapshot postSnapshot : snapshot.getChildren()) { 
          Person person = postSnapshot.getValue(Person.class); 
          String string = "Name: " + person.getName() + "\nAddress: " + person.getAddress() + "\n\n"; 
          textViewPersons.setText(string); 
         } 
        } 

        @Override 
        public void onCancelled(FirebaseError firebaseError) { 
         Log.e("The read failed: ", firebaseError.getMessage()); 
        } 
       }); 

      } 
     }); 
+5

按照此鏈接http://stackoverflow.com/questions/33606853/firebase-permission-denied-when-reading-data-after-authentication – sushildlh

+0

檢查您的權限在firebase控制檯,在數據庫 - >規則 –

+0

我越來越在規則部分。 { 「規則」:{ 「.read 」: 「AUTH = NULL」, 「 .WRITE」: 「AUTH = NULL」 }} 桑傑 –

回答

5

你可能在你的規則選項卡下面的規則:

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

這條規則意味着只有經過身份驗證的用戶將能夠執行讀取和寫入操作。

只是將其更改爲:

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

注意:這條規則意味着任何人都可以讀取和寫入到您的火力數據庫。

步驟:轉到Firebase控制檯 - >選擇項目 - >從左側的旁邊菜單中選擇數據庫 - >單擊規則選項卡 - >在那裏複製規則。

+0

如何設置它,所以我不必註冊用戶,但只有應用程序可以訪問數據庫? – Si8

+1

@ Si8檢查我的更新答案。 –

+0

你好。但沒有辦法阻止任何人訪問它比正確的? – Si8