1

문서 목록을 만들려고합니다. 이 전 구조의이 종류가 있다고 가정 해 보자 : 나는 "someuserid1"와 "someuserid2"의 마지막에 대한 첫 번째 두 문서를 나열 할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; 
    } 
    } 
} 

그리고이 내 코 틀린 코드 :

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

사실 그것은 내 실수였습니다. 구문은 플랫폼마다 약간 씩 다릅니다. 나는 대답을 업데이트했다. –