0

認証なしでfirebaseノードのデータを読み取ることはできますか?認証なしのFirebaseデータベースを読む

新しいユーザーが有効な招待状コードを持っているはずのアンドロイド/ iosアプリケーションを作成しています。そのためには、アカウントを作成する前に、ユーザーに有効な招待コードがあるかどうかをチェックする必要があります。 1つのノードにすべての有効な招待コードを保存しました。私はそのリストのコードに対してユーザーが入力したコードを検証したいと思います。

現在、私は自分のデータベースの読み書きを許可しています。

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

私はaddValueEventListenerまたはaddListenerForSingleValueEventからの応答のいずれかの種類を取得していませんよ。

ありがとうございます。

+0

匿名の認証を使用することもできます。 –

+0

これらのデータベースルールでは、認証する必要はありません –

+0

@PeterHaddadIは試みましたが、Firebaseからの応答はありませんでした。エラーでもありません。 – Chrishan

答えて

1

もしあなたが本当に読んだり書いたりするルールを作るのなら、それは誰でも読むことができます。したがって、セキュリティはありません。 「Firebase匿名認証」によってユーザを認証し、データベースから読み取る方が優れています。匿名の認証では、ユーザーはバックグラウンドで認証され、何もする必要はありません。 このようにして、セキュリティを妥協することはありません。 これは、認証されていないアクセス専用のノードを持つようにfirebase Here

mAuth.signInAnonymously() 
    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
     @Override 
     public void onComplete(@NonNull Task<AuthResult> task) { 
      if (task.isSuccessful()) { 
       // Sign in success, update UI with the signed-in user's information 
       Log.d(TAG, "signInAnonymously:success"); 
       FirebaseUser user = mAuth.getCurrentUser(); 
       updateUI(user); 
      } else { 
       // If sign in fails, display a message to the user. 
       Log.w(TAG, "signInAnonymously:failure", task.getException()); 
       Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.", 
         Toast.LENGTH_SHORT).show(); 
       updateUI(null); 
      } 

      // ... 
     } 
    }); 
+0

signInAnonymousが新しいユーザーを作成しています。ユーザーが既にアカウントを持っている可能性があります。 – Chrishan

+0

匿名のサインインをパーマネントに変換できます。 https://firebase.google.com/docs/auth/android/anonymous-auth?authuser=0#convert-an-anonymous-account-to-a-permanent-account –

0

構造でスキーマを匿名認証を使用するためのチュートリアルですし、このような何か:

{ 
    "rules": { 
     "invitations": { 
      ".read": "true", 
      ".write": "false" 
     }, 
     "$other_locations": { 
      ".read": "auth != null", 
      ".write": "auth != null" 
     } 
    } 
} 

がにダウンしていますが、あなたの本当にケースを使用してください。

+0

がのために働いていませんでした - このドキュメントをチェック 私。 – Chrishan

関連する問題