FireStore查询子集合

时间:2017-12-16 17:05:42

标签: android firebase kotlin google-cloud-firestore

我在FireStore中有以下结构,

  • 问题[收集]

    • 测验1 [文件]

      • 结果[收集]

我想在问题集中有问题,然后,当用户回答问题时,他/她的结果存储在问题的子集合中,用户的字符串id作为id。我的问题是,我如何查询以获得用户没有回答的问题。即未回答的问题是那些没有用户ID作为他们的id的结果的问题。希望我对此很清楚。感谢。FireStore Screenshot

val questionsRef = db.collection("questions")
val query = questionsRef.whereEqualTo(
        questionsRef.document().collection( "results" ).document(App.INSTANCE.appUUIDString), null)
        .limit(50).get()

1 个答案:

答案 0 :(得分:1)

一种方法是在用户记录中创建一个对象(或由userId索引的单独集合),列出他们已回答的问题,然后查询他们没有回答的问题。 (这需要获取所有问题的列表并删除已回答的问题。)您必须在循环中逐个检索问题。

在no-sql数据库中,最终会有这种结构的多个索引。