Java Firestore - Error: Use FieldPath.of() for field names containing '˜*/[]'
Java Firestore - Error: Use FieldPath.of() for field names containing '˜*/[]'
我正在编写 Java 代码来与 Firestore 数据库交互。我需要访问字段名称中包含正斜杠的字段:
f.col1 = document.getString("username");
f.col2 = document.getString("subject");
f.col3 = document.getString("details/comments");
当我 运行 代码时,我在获取 Col3 的行中收到以下错误:
java.lang.IllegalArgumentException: Use FieldPath.of() for field names containing '˜*/[]'.
我不知道如何正确使用此方法,也找不到任何关于如何正确使用它的文档(谷歌搜索提供了等效的 JS 方法)。当我尝试使用 FieldPath.of() 方法时,如下所示:
f.col3 = document.getString(FieldPath.of("details/comments"));
我收到以下编译器错误:
java: incompatible types: com.google.cloud.firestore.FieldPath cannot be converted to java.lang.String
我无法控制 Firebase 数据的结构,所以我需要使用这个字段名称。
我正在使用以下文档与数据库进行交互:
https://firebase.google.com/docs/firestore/quickstart#java_9
我认为您正在为最后一个字段寻找 FieldPath.of
:
f.col3 = document.getString(FieldPath.of("details/comments"));
如果 /
表示 comments
是 details
映射中的一个子字段,正确的分隔符应该是 .
btw:
f.col3 = document.getString(FieldPath.of("details.comments"));
对于你的第二个错误,看起来 DocumentSnapshot.getString()
只存在一个 String
参数,所以你需要使用接受 FieldPath
的 get()
:
f.col3 = document.get(FieldPath.of("details/comments"));
或
f.col3 = document.get(FieldPath.of("details.comments"));
如果您在此处遇到字符串转换错误,请将 toString()
添加到调用中。
我正在编写 Java 代码来与 Firestore 数据库交互。我需要访问字段名称中包含正斜杠的字段:
f.col1 = document.getString("username");
f.col2 = document.getString("subject");
f.col3 = document.getString("details/comments");
当我 运行 代码时,我在获取 Col3 的行中收到以下错误:
java.lang.IllegalArgumentException: Use FieldPath.of() for field names containing '˜*/[]'.
我不知道如何正确使用此方法,也找不到任何关于如何正确使用它的文档(谷歌搜索提供了等效的 JS 方法)。当我尝试使用 FieldPath.of() 方法时,如下所示:
f.col3 = document.getString(FieldPath.of("details/comments"));
我收到以下编译器错误:
java: incompatible types: com.google.cloud.firestore.FieldPath cannot be converted to java.lang.String
我无法控制 Firebase 数据的结构,所以我需要使用这个字段名称。
我正在使用以下文档与数据库进行交互: https://firebase.google.com/docs/firestore/quickstart#java_9
我认为您正在为最后一个字段寻找 FieldPath.of
:
f.col3 = document.getString(FieldPath.of("details/comments"));
如果 /
表示 comments
是 details
映射中的一个子字段,正确的分隔符应该是 .
btw:
f.col3 = document.getString(FieldPath.of("details.comments"));
对于你的第二个错误,看起来 DocumentSnapshot.getString()
只存在一个 String
参数,所以你需要使用接受 FieldPath
的 get()
:
f.col3 = document.get(FieldPath.of("details/comments"));
或
f.col3 = document.get(FieldPath.of("details.comments"));
如果您在此处遇到字符串转换错误,请将 toString()
添加到调用中。