0

firebaseUser権限を使用してfirebaseデータベースを使用しています。私は正常にログアウトユーザーをアプリから、しかし、私はログアウトユーザーは、アプリケーションがfirebaseデータベースの参照のためにクラッシュします。firebaseデータベースからユーザをログアウトする方法は?

This client does not have permission to perform this operation. 

firebaseデータベースからユーザをログアウトするにはどうすればよいですか?

+0

なぜあなたはログアウトしようとしていますか?そうしている場合は、ユーザーに再度ログインしてdb操作を実行するように依頼する必要があります。 "このクライアントにはこの操作を実行する権限がありません。" - 認証されていない、またはログアウトしているデータベースにアクセスしようとしています。 –

+0

@TGMCiansユーザーが複数のアカウントを持っている場合、ユーザーはログアウトオプションが必要です。私のアプリでログアウトオプションを希望します – Dhanumjay

+0

あなたのデバイスに複数のGmailアカウントが設定されていて、別のアカウントで試してみたいとお考えですか? –

答えて

0

ValueEventListenerを私がログアウトしようとしているときに、ValuebaseListenerをfirebaseデータベース参照に追加しました。なぜなら、私のアプリケーションがクラッシュする理由がValueEventListenerをバックグラウンドで実行しているからです。

私はfirebaseデータベース参照からValueEventListenerを削除し、私の問題は解決しました。

3

あなたは「データベース」からログアウトしませんが、Firebaseからログアウトする場合はFirebaseAuth.getInstance().signOut()です。

その後、ユーザーはユーザーの資格情報を必要とするデータベースの部分にアクセスすることはできません。それが原因でアプリがクラッシュしたようです。したがって、データベース呼び出しを行うときは、ユーザーが正しい資格情報を持っているかどうかを確認する必要があります。

1

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)); 
    } 
+0

あなたの答えはこの問題の問題点を解決することはできません。 – Aashish

関連する問題