【问题标题】:Firestore OR queries using Java使用 Java 的 Firestore OR 查询
【发布时间】:2021-11-24 23:29:51
【问题描述】:

我想使用 Java 客户端在 Firestore 中执行 OR 查询操作。我正在尝试合并查询。

代码:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
Query firstQuery = rootRef...
Query secondQuery = rootRef...

Task firstTask = firstQuery.get();
Task secondTask = secondQuery.get();

Task combinedTask = Tasks.whenAllSuccess(firstTask, secondTask).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
    @Override
    public void onSuccess(List<Object> list) {
         //Do what you need to do with your list
    }
});

Firestore - Merging two queries locally中建议的那样

但这对我不起作用,有人可以向我建议如何使用 java 客户端为 fire store 加入查询镜头操作。

【问题讨论】:

  • 你的 onSuccess 是否被触发了?
  • 我无法创建任务对象,对我来说:query.get() 不返回任务对象,ApiFuture qs = query.get();对象属于这种类型,我使用的是maven依赖依赖> com.google.firebasefirebase-admin8.0.1com.google.api-clientgoogle-api-client1.23.0 在 java 项目中
  • 所以您没有在 Android 应用程序中使用 Java?
  • 我用的是java,但不是android应用

标签: java firebase google-cloud-platform google-cloud-firestore firebase-admin


【解决方案1】:

如果您没有在 Android 上使用 Java,那么您应该考虑使用 Firebase Admin SDK。在链接的文档中,您将找到所有可以帮助您与 Firebase 交互的必要详细信息。

访问与您的 Firebase 项目关联的 Cloud Storage 存储分区和 Cloud Firestore 数据库等 Google Cloud 资源。

是的,在 Query 对象上调用的 get() 方法不会返回 Task 对象,而是返回 ApiFuture

据我所知,没有任何方法可以帮助您组合两个查询。您只能addListener() 并相应地读取数据。

但是,这是一种可以帮助您实现这一目标的解决方法,即使用 CompletableFuture。我个人没有在开发中使用它,因为我主要使用 Android,但您可以查看一下:

我想使用 Java 在 Firestore 中执行 OR 查询操作。

对于 Firestore,您还可以考虑使用 in 运算符在同一字段上使用逻辑 OR 组合最多 10 个相等 (==) 子句。

【讨论】:

  • 嗨内哈。我可以帮助您了解其他信息吗?如果您认为我的回答对您有所帮助,请考虑通过单击左侧投票箭头下方的复选标记(✔️)来接受它。应将颜色更改为绿色。我真的很感激。谢谢!
猜你喜欢
  • 2021-04-27
  • 2018-03-25
  • 1970-01-01
  • 2021-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多