0

私はあなたがログイン/登録する必要があるアプリケーションを作成しようとしています。自分のアカウントで「無効」という値を作成してこの値を「はい」に設定することで、ユーザーを恒久的に禁止することができます。彼がログインするたびに、この値がYesであればチェックします。もしログインできない場合はチェックします。 一時的にアカウントを禁止することはできますか?私は、禁止が発生した現在の時間を保存し、禁止の時間を追加することを考えていました。一時的な禁止値(時間)が現在の時間よりも長い場合、プレーヤーがまだログインしていない場合は、プレーヤーがログインするたびにチェックします。値(時間)がプレーヤより低い場合、プレーヤはブロックされません。しかし、私は彼らがちょうど彼らのデバイスの設定でこれを変更することができると思う。Firebaseの一時的な禁止アカウント

これを行う方法は他にありますか?

+0

どのFirebase機能を使用しますか?それは認証とデータベースのように聞こえるが、それを明示的に確認できるか? –

+0

@FrankvanPuffelenはい、私はすべての値を保存するためのログインと登録とデータベースのために認証を使用しています。 (私もプロファイル写真のためにストレージを使用しています)。 –

答えて

2

あなたのために働くかもしれないアイデアかもしれません:

ユーザーを禁止するには、その後にタイムスタンプを禁止NOW + X

{ "users" : { 
    "bad_user" : { 
     "banned" : { 
      "until" : 123456 // timestamp NOW + X 
     } 
    } 
    } 
} 

今たび、ユーザーログなどのフラグにEユーザーユーザーは、ユーザーが禁止されている天気をチェックして、すぐにエントリーすることを削除しようとします。失敗した場合、ペナルティ時間はまだ実行されています。成功した場合、ユーザーはあなたのアプリを使用することができます:)

トリックは、可能な変更を制限するためにfirebaseルールを使用することです。以下のような

何か:

{ 
    "rules" : { 
    "users" : { 
     "$uid" : { 
     // ... 
     "banned" : { 
      .write : "(!newData && now < data.child('until').val())" 
.... 

は注意してください - これらはルールが機能していないが、それを把握するために役立つはずです。

+0

私を助けてくれてありがとう! –

3

disable a user's account through the Firebase Admin SDKです。しかし、それは自動的にユーザーをサインアウトしません。彼らが再びサインインするのを防ぐだけです。不正な変更を行うからユーザーを防ぐために

、おそらくデータベースに無効なユーザーのブラックリストを追加したいと思う:

/bannedUsers 
    uid1: <banned-until-timestamp> 
    uid2: <banned-until-timestamp> 
    uid3: <banned-until-timestamp> 

次にあなたがcheck this list from your security rulesできる:

".write": "!root.child('bannedUsers').child(auth.uid).exists() || 
      root.child('bannedUsers').child(auth.uid).val() < now" 
+0

私を助けてくれてありがとう! –

関連する問題