0

Firebaseの新しいCloud Firestoreで認証を使用する方法を探していました。私はそれが可能であることを知っていますが、ドキュメンテーションと他の場所の両方で良いガイドがありません。Cloud Firestore with Authentication

Cloud Firestoreからのデータをget()に送信すると、認証UIDを提供する方法を教えてください。ここで

は私のセキュリティルールです:

var db = firebase.firestore(); 
var docRef = db.collection("users").doc(uid); //lets say "uid" var is already defined 
docRef.get().then(function(doc) { 
    if (doc.exists) { 
     console.log("Document data:", doc.data()); 
    } else { 
     console.log("No such document!"); 
    } 
}).catch(function(error) { 
    console.log("Error getting document:", error); 
}); 

私のデータベースの構造は、ルートでちょうど「ユーザー」コレクション、ドキュメントです:

service cloud.firestore { 
    match /users/{userID} { 
    allow read, write: if request.auth.uid == userID; 
    } 
} 

そして、ここでは私の現在のコードです(UIDにちなんで命名された)各ユーザのために。私はユーザーのUIDで文書を取得したい。

もちろん、これは、セキュリティルールのために予想される "不足または不十分なアクセス許可"というエラーを示します。

この質問は簡単に思えるかもしれませんが、誰かがこれに関するいくつかの良い文書を見つけることができれば、それは素晴らしいことでしょう!

+0

内にある必要があります。 – Hareesh

+1

[MCVE](http://stackoverflow.com/help/mcve)を提供してください(リンクを読む、それは非常に便利です)。例えば。 'docRef'は何を指していますか?ユーザーにサインインしていますか? –

+0

@FrankvanPuffelenさて、不足している情報を記入するために質問を編集しました。はい、Googleとの認証は既に完了しています。私はUIDを持っています、私はちょうどそれと何をするかを知る必要があります – yummypasta

答えて

4

あなたのルールでは、すべてのユーザーを取得したいかだけあなたくださいmatch /databases/{database}/documents

service cloud.firestore { 
    match /databases/{database}/documents { 
    match /users/{userID} { 
     allow read, write: if request.auth.uid == userID; 
    } 
    } 
} 
関連する問題