【问题标题】:How to use query .document using firebase ui如何使用firebase ui使用查询.document
【发布时间】:2019-07-09 20:44:08
【问题描述】:

我正在使用这个Firebase-UI

我有用户(集合)、uid(文档)和图像 url 数组。

This is my Firebase schema

如何使用文档查询来获取特定用户并获取imageUrl

Query query = FirebaseFirestore.getInstance()
    .collection("users")
    .document(auth.currentUser!!.uid)

错误:

以下函数都不能使用提供的参数调用。 setQuery(Query, (snapshot: DocumentSnapshot) → Profile) 在 com.firebase.ui.firestore.FirestoreRecyclerOptions.Builder 中定义 com.firebase.ui.firestore.FirestoreRecyclerOptions.Builder 中定义的 setQuery(Query, SnapshotParser) com.firebase.ui.firestore.FirestoreRecyclerOptions.Builder 中定义的 setQuery(Query, Class)

这可行,但我只想知道我是否可以使用 .document

val query = FirebaseFirestore.getInstance()
        .collection("users")
        .whereEqualTo(FieldPath.documentId(), auth.currentUser!!.uid)

【问题讨论】:

    标签: firebase kotlin google-cloud-firestore firebaseui


    【解决方案1】:

    没有办法使用下面这行代码:

    Query query = FirebaseFirestore.getInstance()
        .collection("users")
        .document(auth.currentUser!!.uid)
    

    一次,因为这不是您在 Kotlin 中声明变量的方式。其次,因为当在 CollectionReference 对象上调用 document() 函数时,它会返回 DocumentRefence 对象而不是 Query 对象。

    所以你可以简单地使用:

    val document = FirebaseFirestore.getInstance()
        .collection("users")
        .document(auth.currentUser!!.uid)
    

    document 对象现在将是DocumentReference 类型。

    【讨论】:

    • 嗨塞缪尔!您是否尝试过我上面的解决方案?如果您认为我的回答对您有所帮助,请考虑通过单击左侧投票箭头下方的复选标记(✔️)来接受它。应将颜色更改为绿色。我会很感激的。谢谢!
    • 我可以使用 .setQuery 进行设置吗?它不接受文件val options = FirestoreRecyclerOptions.Builder<Profile>() .setQuery(query, Profile::class.java) .build()
    • 不,您不能将文档对象传递给设置的 setQuery 函数,因为类型是 DocumentRefence 而不是 Query。你不能那样使用 Firebase-UI。只接受 Query 对象或 CollectionReference,这是因为 CollectionReference 扩展了 Query。
    • 是的,但我认为有 .setDocument 什么的,我想我只能使用 whereEqualTo。谢谢
    猜你喜欢
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 2019-07-06
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多