无法在Firestore中按字符串查询。RuntimeException字段“ latitude”不是java.lang.String

佩雷

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

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

java.lang.RuntimeException:字段“纬度”不是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字段是`String。文档所述

RuntimeException如果该值不是字符串,则抛出异常

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

doc.getDouble("latitude")

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法应用BasicNameValuePair中的BasicNameValuePair(字符串,java.lang.String)

从Scala字符串到java.lang.String的转换

java.lang.RuntimeException:java.lang.ClassCastException:java.lang.Long无法强制转换为java.lang.String

java.lang.ClassCastException:[Ljava.lang.String; 无法转换为java.lang.String

JPA Hibernate无法将java.lang.String字段设置为java.lang.String异常

Spark:RuntimeException:java.lang.String不是日期模式的有效外部类型

无法解析构造函数 'Order(Java.lang.string,Java.lang.string,Java.lang.string,void,void)

线程“主”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:java.lang.String.substring(String.java:1960)-1

java.lang.String中:长度()与计数?

如何使jvm加载我的java.lang.String而不是rt.jar中的那个

java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.String;

无法将“java.lang.String”类型的值转换为所需的“int”类型;对于输入字符串:“保存”

无法将类型“ java.lang.String”的值转换为所需的类型“ long”;嵌套的异常是java.lang.NumberFormatException:对于输入字符串:“”

Apache spark Row getAs [String]:java.lang.Byte无法转换为java.lang.String

[java.lang.String; 无法转换为java.lang.String

无法解析方法 put(java.lang.string, java.lang.string)

Java泛型:不兼容的类型为必需的字符串;找到:java.lang.String

如何解决此错误“无法解析方法'addData(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)'”?

LibGDX中的图块无法将java.lang.String转换为java.lang.Boolean

Spark SQL:java.lang.RuntimeException:[B 不是字符串模式的有效外部类型

无法解析法“得到(java.lang.String中)”

无法类型的属性值转换[java.lang.String中]

如何防止java.lang.String.split()创建前导空字符串?

如何将C#字符串转换为Java.Lang.String?

将java.lang.String转换为Scala字符串

无法在Java中将java.lang.Long强制转换为java.lang.String

java.lang.ClassCastException:类java.sql.Date无法转换为java.lang.String

java.lang.ClassCastException:无法将java.lang.Double强制转换为java.lang.String

java.lang.ClassCastException:无法将java.lang.String强制转换为java.lang.Double