3

への読み取り/書き込みアクセスを私は走る静的なウェブサイトを持っている:ブラウザでだけ自分

config = 
    apiKey: "HIDDEN" 
    authDomain: "HIDDEN" 
    databaseURL: "HIDDEN" 
    storageBucket: "" 

firebase.initializeApp(config) 

(javacriptするようにコンパイルです)Firebaseのサーバーで認証します。

私はここで混乱していますか?これは、ブラウザからFirebaseで認証するための有効な方法ですか?私は彼らの "Web"チュートリアルからコードを入手しました。

ここで私だけがが&と書くことができるようにFirebaseデータベースのルールを設定する必要があります。

これをどのように達成できますか?この例は十分でしょうか?

これはあなたの質問のルールは、任意の認証されたユーザが読んで、データベース内の任意のキーに書き込むことができるようになるだけ

{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null" 
    } 
} 

答えて

8

firebase.initializeApp(config)はあなたを認証しません。Firebaseサーバーでプロジェクトを識別するだけです。仕事後にどこに行くべきかを知るためには、あなたの自宅の住所を知っておく必要があります。アドレスを知ることは前提条件ですが、アクセスするには十分ではありません。

データアクセスを「あなただけ」に制限する場合は、まずFirebaseで自分自身を識別する必要があります。これはFirebase Authenticationで行います。たとえば、あなたがしたいメール+パスワードでログインする:

firebase.auth().signInWithEmailAndPassword(email, password) 

完全な手順についてはdocumentation for email+password authenticationを読みます。

一度認証されると、一意のIDが取得されます。いわゆるuidである。 uidはFirebaseコンソールのAuthタブにあります。このuid

the Firebase Auth console showing a user's information

あなたはデータ(データベースとストレージの両方)へのアクセスを制御することができます。ですから、コンソールからあなたのuidをコピーして、あなたのセキュリティルールに追加した場合、あなた(またはあなたの電子メール+パスワードを知っている人)のみがデータベースにアクセスすることができます:私は私自身のuidの1を追加

{ 
    "rules": { 
    ".read": "auth.uid == 'e836f712-4914-41df-aa80-5ade6b8b7874'", 
    ".write": "auth == 'e836f712-4914-41df-aa80-5ade6b8b7874'" 
    } 
} 

注意このスニペットで。 APIキーまたはデータベースのURLを知ることはセキュリティ上のリスクではないので、私のuidも知りません。私がFrank van Puffelenであることを知っていれば、Stack Overflowのuser:209103が私を偽装することはできません。

+0

おかげさまで、あなたのチームがnoobsを見ていることを知っていることは素晴らしいことですが、Firebaseを使用してビルドを開始することに興奮しています。 –

+0

私はあなたが何を構築するのを楽しみにしています! –

+1

私はここに感謝の言葉を言っているのは分かっていますが、この回答がとても助けてくれた@FrankvanPuffelenです!私はこの基本情報を探していましたが、何らかの理由で基本情報が常にFirebaseのドキュメントから除外されているようです。ありがとう! – Adam

2

認証されたユーザへのリード/ライトを可能にするために与えられた例です。あなたは、単一のユーザを設定し、そのユーザのみにアクセスを制限するために、開発目的のために、希望する場合は、次の規則を使用することができます。

<your-uid>はあなたが望むに使用するユーザーのための ユーザーUIDある
{ 
    "rules": { 
    ".read": "auth !== null && auth.uid === '<your-uid>'", 
    ".write": "auth !== null && auth.uid === '<your-uid>'" 
    } 
} 

ログインするには、Authの下にあるFirebaseコンソール(これをまだ行っていなければ、ユーザを作成することもできます)で見つけることができます。

一般的に、Firebaseはユーザーがアカウントを作成できるように構成され、データベースの特定の部分への読み取りと書き込みのアクセス権をユーザーに与えるための細かい規則が使用されます。

関連する問題