2016-07-13 15 views
8

firebase.auth()。signInWithEmailAndPasswordを使用していくつかのユーザーを作成しましたが、今サインアップを停止しますが、サインインはそのまま使用します。私はユーザーにいくつかのルールを試してみました。しかし登録はまだ可能でした。コンソールで電子メール/パスワードを無効にするとログインも無効になります。Firebase 3.xでサインアップを無効にする方法

{ 
    "rules": { 
     ".read": true, 
     ".write": false, 
     } 
} 

Firebase 3のユーザーにセキュリティルールを適用する方法はありますか?

答えて

17

Firebaseは、認証(アプリケーションへのサインイン)と認証(アプリケーションからのデータベースまたはストレージリソースへのアクセス)を明示的に分けます。

すべてのユーザーのサインインを無効にしない限り、サインアップを無効にすることはできません。これは必要なものではありません。

標準的なシナリオでは、開発者は認証されたユーザーに基づいてデータベース/ファイルアクセスのセキュリティを開始します。詳細については、database securitystorage securityの関連セクションを参照してください。

特定のユーザーのみがアクセスできるようにする場合は、ホワイトリストを実装することをお勧めします。ユーザーのリストで、データにアクセスできるようにします。

あなたはあなたのセキュリティルールであることを行うことができます:データベースで許可されたUIDのリストを入れて、あなたのセキュリティルールからそれを参照することにより

{ 
    "rules": { 
     ".read": "auth.uid == '123abc' || auth.uid == 'def456'", 
     ".write": false, 
     } 
} 

または(より良い):

"allowedUids": { 
    "123abc": true, 
    "def456": true 
} 

をそして:

{ 
    "rules": { 
     ".read": "root.child('allowedUids').child(auth.uid).exists()", 
     ".write": false, 
     } 
} 
+0

ありがとうございました。それは私の問題を解決する。 – ZimZim

+0

私の答えが役に立つなら、その左側のupvoteボタンをクリックしてください。あなたの質問に答えた場合は、チェックマークをクリックしてそれを受け入れます。そうすれば、他の人はあなたが(十分に)助けられたことを知ることができます。 –

+0

すてきな回避策。それでも彼らはこの機能を追加したいと考えています。私たちが200テスターのようなものを持っていて、このように手作業で追加しなければならないのなら、大きな混乱になるでしょう –

関連する問題