我正嘗試使用帶有電子郵件和密碼的Firebase身份驗證服務。我試圖做的事:失敗:FirebaseError:每次都拒絕權限
- 登錄用戶
- 後成功登錄,我想從火力地堡數據庫獲取數據。
得到日誌[onAuthStateChanged:signed_in: "xyz"]
。之後登錄每次我得到許可被拒絕,並得到這個:
[W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found].
我的數據庫規則:
{
"rules": {
"Person" :{
".read": "auth !== null",
".write": "auth !== null"
}
}
}
我的代碼
private FirebaseAuth auth;
private FirebaseAuth.AuthStateListener mAuthListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
auth = FirebaseAuth.getInstance();
btnLogIn.setOnClickListener(onClickBtnLogIn);
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d("TAG", "onAuthStateChanged:signed_in:" + user.getUid());
final Firebase ref = new Firebase("https://firebaseapplink/Person");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Map<String, Object> userData = (Map<String, Object>) dataSnapshot.getValue();
Log.d("TAG", "User Data :" + userData);
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.d("TAG", firebaseError.getMessage()); // Permission Denied
}
});
} else {
Log.d("TAG", "onAuthStateChanged:signed_out");
}
}
};
}
View.OnClickListener onClickBtnLogIn = new View.OnClickListener()
{
@Override
public void onClick(View v) {
final String Email = edtEmail.getText().toString().trim();
final String Password = edtPwd.getText().toString().trim();
auth.signInWithEmailAndPassword(Email, Password)
.addOnCompleteListener(abc.this, new OnCompleteListener<AuthResult>()
{
@Override
public void onComplete(@NonNull Task<AuthResult> task)
{
if (task.isSuccessful())
{
Log.d("SignIn", "task");
}
if (!task.isSuccessful())
{
Log.d("SignIn", "task fail");
}
}
});
}
};
@Override
public void onStart() {
super.onStart();
auth.addAuthStateListener(mAuthListener);
}
以前已經回答過,可能是你自己。 :-)你可以找到一個愚蠢的和標記嗎? –
@FrankvanPuffelen:重複http://stackoverflow.com/q/39319741/4815718 –
謝謝@qbix!雖然封閉了這個問題,但在這裏也提出了你的答案。 :-) –