0

firebaseを使用してAndroidアプリを構築しています。シンプルなユーザーはサインインしてデータをデータベースに追加します。ユーザーは自分のデータだけを見ることができます。次に、Firebaseデータベース内のすべてのデータを見る単一の管理者アカウントを持つ必要があります。それについてどうすればいいですか?Firebaseの管理者とユーザーアカウント

答えて

0

まだデータベースを保護していませんか?そうでない場合は、documentation for Firebase security rulesを使い始めることをおすすめします。

私は通常、データベースをshown in the section on securing user dataとして安全にしてから、特別な権限を持つユーザーのデータベースにUIDのリストを持っています。このような

users 
    Power3000Uid: { ... } 
    PufUid: { ... } 
admins 
    Power3000Uid: true 

とセキュリティルール:このようなJSON構造を持つので、

すなわち

{ 
    "rules": { 
    "users": { 
     "$uid": { 
     ".read": "auth.uid == $uid || root.child('admins').child(auth.uid).exists()" 
     } 
    } 
    } 
} 

.readのルールがある:「あなたがいる場合は、このデータを読み取ることができますそれの所有者、またはあなたが管理者の場合は "です。上記の例では、誰かのデータを読むことができますが、私は自分のデータしか読むことができません。

あなたの正確なニーズに応じて、データベースのさまざまな場所でadmin-clauseを繰り返す必要があります(通常は何をしているのですか)。

+0

ありがとうございます。もう一つ。私のアプリには3つのサインインオプションがあります - facebook、google、email。 FBとGoogleは通常、単純なユーザーを使用し、電子メールは管理者が使用します。だから私は手動でアカウントを作成し、管理ノードの下に置く必要がありますか? – Power3000

+0

あなたが私の簡単なアプローチをとるならば、それらのユーザのUIDをどうにか '/ admins'ノードに追加しなければなりません。これを実装する方法は他にもたくさんありますが、ほとんどの場合、ホワイトリストの作成方法が異なります。彼らはおそらく同様のルックアップで終わるでしょう: "ユーザーが/ placeに存在するなら、彼らは特別な権限を持っています"。 –

関連する問題