私は自分のアプリにFirebaseを使用していて、特定のユーザーをブロックする方法が不思議でした。コンソールの[認証]タブに「削除」と「無効化」オプションが表示されています。それらは何をするのですか?私はそれについての文書を見つけることができませんでした。そのうちの1つでユーザーをブロックできますか?Firebaseでどのようにユーザーをブロックしますか?
は、私は、ユーザーをブロックすることによって意味することは
私は自分のアプリにFirebaseを使用していて、特定のユーザーをブロックする方法が不思議でした。コンソールの[認証]タブに「削除」と「無効化」オプションが表示されています。それらは何をするのですか?私はそれについての文書を見つけることができませんでした。そのうちの1つでユーザーをブロックできますか?Firebaseでどのようにユーザーをブロックしますか?
は、私は、ユーザーをブロックすることによって意味することは
無効機能が認証することをユーザーに防止することで構成されたデータベース上のデータにアクセスしてから彼を防ぐために".read": "auth != null"
ルールです。したがって、認証しようとすると、エラーコードINVALID_CREDENTIALS
で失敗し、彼は".read": "auth != null"
ルールを持つデータにアクセスできなくなります。彼は削除されたように機能しますが、管理者は引き続きユーザーアカウントを再度アクティブにする権限を持ちます。
あなたが認証できるになりますが、アクセスを制限しているだろう「ブロックされたユーザー」のリストを作成したい場合は、/databaseRoot/blockedUsers
のようなあなたのfirebaseデータベース上のノードでブロックされたIDを格納し、で作業することができますsecurity and rules
。
".read": "auth != null && !root.child('blockedUsers').hasChild(auth.uid)"
blockedUsersは、ツリー怒鳴るようになります。しかし、あなたはまた、このユーザーがブロックされた日付とユーザーIDのもとで他のいくつかの情報を追加することができます。
/databaseRoot
/blockedUsers
userId1 : true
userId2 : true
このリストにユーザーを追加するかどうかは、必要に応じて異なります。 firebaseコンソールにアクセスし、ユーザIDをノードに追加することで手動で行うことができます。あなたがアプリケーションのイベントに基づいてユーザをブロックしたい場合は、あなたは、単に
ref.child('blockedUsers').child(userIdToBlock).set(true);
私は似たようなものを探しています。ユーザーに自分のアプリケーションを認証させることさえできないようにしたい。だから、私はユーザーの "ホワイトリスト"を持ち、他のすべてのユーザーはアプリケーションにアクセスできないようにしたいと考えています。これどうやってするの? – Sandra
のようなものを呼び出すことができ@PhilipSopherねえ、私の答えは明確ではなかったか、あなたはまだ他の懸念を持っているなら、私に知らせてください。ありがとう! – adolfosrs
@adolfosrs答えをありがとう。私は2つの質問があります: 1) 'blockedUsers'ノードはどのように見えますか?それは配列、辞書などですか?コード例を提供できますか? 2)**無効**機能は、現在ログインしているユーザーの認証を解除しますか? –
**最初の質問**に関する追加情報で回答を更新しました。 **第2の質問**については、実装上でユーザーを常に再認証しているかどうかによって異なります。あなたがカバーしたい重要なイベントがある場合は、それを処理するために 'reauthenticate'することができます。さもなければ、あなたは未認証がありません。 – adolfosrs