0

下面是規則。無法添加到Firebase表

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

這是我用來添加的代碼。行mAuth,getCurrentUser.isAnonymous返回false,並且userid還打印了值。用戶已通過身份驗證,但無法寫入用戶表。

System.out.println("Anonymous - "+ mAuth.getCurrentUser().isAnonymous()); 
mRef = new Firebase("https://moe-90cc7.firebaseio.com/users"); 
String userid = mAuth.getCurrentUser().getUid(); 
System.out.println("userid---" + userid); 
mRef.child(userid).setValue("1"); 

當我改變規則

read: true 
write: true 

它工作正常,但問題是爲什麼它不與auth!=null規則的工作,當我經過驗證的用戶。

有什麼我可以做雙重檢查用戶是否通過身份驗證?

+0

你混合火力地堡2.x版本(比如'新火力地堡(...')和9.x/10.x的(例如'mAuth.getCurrentUser()')。因此,當您在Firebase 9.x/10.x中擁有經過驗證的用戶時,您與數據庫的連接未經過身份驗證。解決方案是確保僅使用Firebase 9.x/10.x,並取消對Firebase 2的依賴關係。 x)from your gradle files。 –

回答

0

這意味着您必須驗證正在更新實時數據庫的用戶。您可以通過google提供的一些登錄方法來驗證用戶身份。

,您可以檢查this link for gmail authentication

+0

我已經在使用Google身份驗證了,我認爲這一行是mAuth.getCurrentUser()。getUid();本身證明我已經過身份驗證.. – user7327850

+0

它返回有效的密鑰並且帳戶也被添加了Firebase身份驗證用戶界面 – user7327850

+0

我認爲您必須將身份驗證的帳戶包含在您的實時數據庫項目,然後只有你可以被認證我猜。 –