java - 使用 Java 和 Google 的 Firestore 运行查询时没有输出

标签 java android google-cloud-firestore

我有一个程序,它是事件创建器/定位器。我遇到的问题是从数据库中提取查询。在这个实例中,我只是尝试从数据库中提取特定的邮政编码并显示查询中提供的相应文档的详细信息。

private void findEvent() {
    Log.d(TAG,"Start FindEvent Function");
    eventRef.whereEqualTo("zip", searchZip.toString())
         .limit(1).get()
         .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
             @Override
             public void onComplete(@NonNull Task<QuerySnapshot> task) {
                 if (task.isSuccessful()) {
                     Log.d(TAG, "Task Successful! Starting For Loop!");
                     for (QueryDocumentSnapshot document : task.getResult()) {
                         Log.d(TAG, document.getId()+"=>"+document.getData());
                         updateUI(document);
                     }
                 } else {
                  Log.w(TAG, "Error getting documents.", task.getException());
                 }
             }
         });
}//end findEvent function

当我在手机上运行该程序并点击启动上述功能的搜索按钮时,没有任何内容输出到我的 Activity 中。我检查日志,这就是我将它们放入的原因,在日志中,我得到调试:“任务成功!开始 for 循环!”然后当我期待 updateUI 函数中的调试日志告诉我该函数正在启动时,此后什么也没有。因此告诉我它没有运行 updateUI 函数。

最佳答案

您的查询可能只是没有返回任何结果,并且您的代码没有检查这种情况。

在迭代 QuerySnapshot 之前交付给任务:

QuerySnapshot qsnapshot = task.getResult();

您可以使用它的isEmpty()确定它是否确实包含任何文档的方法:

if (qsnapshot.isEmpty()) {
    Log.d(TAG, "Query resulted in no documents");
}

关于java - 使用 Java 和 Google 的 Firestore 运行查询时没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55835365/

相关文章:

sql - 在google cloud firestore中执行JOIN查询

java - MYSQL 更新表不适用于 Java 实现

java - JAX-RS( Jersey )-> 通过 REST 的 Angular.js

android - 如何以编程方式关闭 Android 上的屏幕保护程序/锁定屏幕 (Nook Simple Touch)

java - 从自定义 View 调用 findViewById 返回 null

找不到 xml 和命名空间中的 Android Studio 未知属性

node.js - 收到状态为 : 403 at Object.exports.createStatusError 的 http2 header

java - 寻找一个Android XML教程

java - 无法在 jTable 中设置自定义背景颜色

firebase - 如何在 flutter 朔迷离的电子商务应用程序中添加购物车页面?