1

文書のリストを作成しようとしています。のは、私がこのような構造を持っているとしましょう:私は「someuserid1」と「someuserid2」の最後の1の最初の2つの文書をリストしたいFirebase Firestoreどのように権限のある文書をリストするのですか?

cards 
    cardId1 
    authorizedUser = someuserid1 
    cardId1b 
    authorizedUser = someuserid1 
cardId2 
    authorizedUser = someuserid2 

。それを行う最善の方法は何ですか?私は、セキュリティルールを使用してみましたが、それはうまくいきませんでした:

service cloud.firestore { 
    match /databases/{database}/documents { 
    match /cards/{cardid} { 
     allow read, write: if resource.data.authorizedUser == request.auth.uid; 
    } 
    } 
} 

そして、この私のKotlinコード:

val query = FirebaseFirestore.getInstance() 
        .collection("cards") 
        .limit(50) 
val options = FirestoreRecyclerOptions.Builder<Card>() 
       .setQuery(query,Card::class.java) 
       .build() 

adapter = CardFireAdapter(options) 

任意のアイデアを、私はここに欠けているものに?

答えて

1

セキュリティルールは、が許可されているクエリのタイプを定義します。です。

まだあなたのクエリに行われなければならない実際のフィルタリング:

val query = FirebaseFirestore.getInstance() 
       .collection("cards") 
       .whereField("authorizedUser", isEqualTo: "someuserid1") 
       .limit(50) 
+0

おかげで、それが働いています。 .where()メソッドがないので、.whereEqualTo()メソッドを使用しました(もはや?)。 –

+0

これは実際に私の間違いでしたが、構文はプラットフォームによって若干異なります。私は答えを更新しました。 –

関連する問題