gpt4 book ai didi

android - Firestore 查询不会进入响应

转载 作者:行者123 更新时间:2023-11-29 00:54:51 25 4
gpt4 key购买 nike

我使用 arrayContain 请求查询 firestore,我的代码进入 OnSuccess 方法但不会进入 for 循环。它跳过它并直接将列表添加到适配器。

我调试了它,但它不会进入那个 for 循环。

CollectionReference mRef = FirebaseFirestore.getInstance().collection("movies");
String s = "Captain Marvel";
mRef.whereArrayContains("title", s)
.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
List<Movie> searchedMovies = new ArrayList<>();
for (QueryDocumentSnapshot document : queryDocumentSnapshots) {
Movie movie = document.toObject(Movie.class);
searchedMovies.add(movie);
}
mAdapter.addNewMovies(searchedMovies);
}
});

enter image description here

最佳答案

您的查询未返回任何结果。那是因为你正在做一个数组包含针对一个不是数组的字段的查询。据我所知,标题是一个字符串,而不是一个数组。

当您在 OnSuccessListener 回调中收到搜索结果时,您应该检查是否 QuerySnapshot甚至在您假设有结果要迭代之前包含结果。根据 API 文档,有一个 isEmpty可用于查明是否有结果的方法。

由于您的标题字段是字符串而不是数组,也许您应该使用 whereEqualTo查询而不是 whereArrayContains 来搜索它。

关于android - Firestore 查询不会进入响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55528525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com