在消防站的领域采取全力干预措施是否会有所不同?

时间:2018-07-03 06:28:38

标签: firebase google-cloud-firestore

下面是代码。它读取“ 1 @ gmail ”的值,但为“ 1@gmail.com ”给出。谁能解释为什么呢?

for(DocumentSnapshot document:task.getResult()){
                            String status = document.getString("1@gmail");
                            String status2 = document.getString("1@gmail.com");
                            Log.v(TAG, "index=" + status);
                            Log.v(TAG, "index=" + status2);
}

enter image description here

1 个答案:

答案 0 :(得分:3)

这是因为.是Firestore文档的特殊字符。首先,请参阅Firestore“ Constraints on field paths”上的文档:

  

必须使用单个句点(。)分隔字段名称

您使用“ 1@gmail.com”指定的字段路径包含.,它被解释为字段路径分隔符。它正在做的是在文档1@gmail中寻找一个对象字段,然后尝试访问该对象的com字段。显然,在这里找不到它,并且它返回null。

如果要访问其中带有.的字段名称,则必须将其包装到FieldPath对象中:

Object o = document.get(FieldPath.of("1@gmail.com"));
String status2 = (String) o;