我正在使用firebaseUser授權使用Firebase數據庫。我成功地從應用程序中註銷用戶,但是當我註銷用戶時,應用程序因爲Firebase數據庫引用而崩潰。我得到logcat消息顯示如何從Firebase數據庫註銷用戶?
This client does not have permission to perform this operation.
如何從Firebase數據庫註銷用戶?
我正在使用firebaseUser授權使用Firebase數據庫。我成功地從應用程序中註銷用戶,但是當我註銷用戶時,應用程序因爲Firebase數據庫引用而崩潰。我得到logcat消息顯示如何從Firebase數據庫註銷用戶?
This client does not have permission to perform this operation.
如何從Firebase數據庫註銷用戶?
我將ValueEventListener添加到firebase數據庫引用,當我試圖註銷用戶時ValueEventListener仍然在後臺運行,這就是爲什麼我的應用程序崩潰。
我從Firebase數據庫引用中刪除了ValueEventListener,並解決了我的問題。
您不會從「數據庫」註銷,而是從FirebaseAuth.getInstance().signOut()
從Firebase註銷。
之後,用戶無法訪問需要用戶憑證的數據庫部分,我想這就是您的應用程序崩潰的原因。所以當你進行數據庫調用時,你需要檢查用戶是否有正確的憑證。
MainActivity.java
private void logout(){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle);
alertDialogBuilder
.setTitle("Message")
.setMessage("Message")
.setCancelable(true)
.setPositiveButton("Message",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
FirebaseAuth.getInstance().signOut();
Intent intent = new Intent(MainActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
})
.setNegativeButton("Message",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.dismiss();
}
});
final AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
TextView pesan = (TextView) alertDialog.findViewById(android.R.id.message);
pesan.setTextSize(15);
Button b = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
b.setTextColor(getResources().getColor(R.color.colorPrimary));
Button c = alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
c.setTextColor(getResources().getColor(R.color.colorHitam));
}
你的回答無法解決這個問題中提到的問題。 – Aashish
爲什麼你想退出?如果你這樣做,那麼你必須要求你的用戶再次登錄,然後執行數據庫操作。 「此客戶沒有執行此操作的權限。」 - 如果用戶有多個帳戶,則用戶需要註銷選項,您正在嘗試訪問未通過身份驗證或註銷的數據庫 –
@TGMCians。在我的應用程序中,我希望註銷選項 – Dhanumjay
您的意思是您的設備上已配置多個gmail帳戶,並且您想嘗試使用不同的帳戶? –