代码之家  ›  专栏  ›  技术社区  ›  Maxime Dupierreux

Firebase Firestore如何列出授权文档?

  •  2
  • Maxime Dupierreux  · 技术社区  · 8 年前

    我正在尝试创建文档列表。假设我有这样的结构:

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

    我想列出“someuserid1”的前两个文档,以及“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 回复  |  直到 8 年前
        1
  •  1
  •   Frank van Puffelen    8 年前

    安全规则定义了查询的类型 允许 .

    仍然必须在查询中进行实际筛选:

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