gpt4 book ai didi

java - 无法在 firestore 中按字符串查询。 RuntimeException字段 "latitude"不是java.lang.String

转载 作者:行者123 更新时间:2023-12-02 09:42:58 26 4
gpt4 key购买 nike

我正在使用 java 中的 android 的 firestore 编写小型应用程序。我正在尝试按集合中的纬度字段进行查询。我的集合中有一些用户,此查询应该返回这些用户 - 即使浏览器中的 firestore 控制台也会返回这些用户。

问题是我每次都会收到错误:

java.lang.RuntimeException: Field 'latitude' is not a java.lang.String

我的代码:

public Map<String, Object> getUsersBasedOnBounds2(LatLngBounds bounds){
db = FirebaseFirestore.getInstance();
Query query = db.collection(collection).whereGreaterThanOrEqualTo("latitude", (int)bounds.northeast.latitude);
query.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
Log.d(TAG, queryDocumentSnapshots.getDocuments().toString());
for (QueryDocumentSnapshot doc : queryDocumentSnapshots){
Log.d(TAG, doc.getString("latitude"));
}
}
});
return null;
}

我做错了什么?

最佳答案

由于您要求 API 检索 String 字段 latitude,因此该错误会通知您没有可匹配的 latitude 字段一个`字符串。作为documentation说:

Throws RuntimeException if the value is not a String.

纬度字段的值可能存储为数字,在这种情况下,您可以直接将其作为数字获取。由于该值很可能存储为 double 值,因此可以通过调用 getDouble 来完成:

doc.getDouble("latitude")

或者通过调用 get 将其作为通用值获取,并将其转换为字符串:

String.valueOf(doc.get("latitude"))

关于java - 无法在 firestore 中按字符串查询。 RuntimeException字段 "latitude"不是java.lang.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56913876/

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