Java Firestore字段空类型用法

Java Firestore字段空类型用法,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,我有一个组集合,每个组文档都有一个管理员地图。我将管理员ID存储为映射的键,对于值,我使用null类型。所以,当我想要检索这个映射时,要使用的java类型是什么,因为null在java中不是类型,它更多的是一个值。我的意思是在java中不能有null类型的变量。那么,我的地图应该是什么样子的: HashMap<String, ?what-type> map = new HashMap(); HashMap map=newhashmap(); 那是什么?什么类型?即使null是云中

我有一个组集合,每个组文档都有一个管理员地图。我将管理员ID存储为映射的键,对于值,我使用null类型。所以,当我想要检索这个映射时,要使用的java类型是什么,因为null在java中不是类型,它更多的是一个值。我的意思是在java中不能有null类型的变量。那么,我的地图应该是什么样子的:

HashMap<String, ?what-type> map = new HashMap();
HashMap map=newhashmap();

那是什么?什么类型?

即使
null
是云中Firestore,也不要将
null
存储为值,而是存储布尔值,例如
true
。这样,您要查找的对象的类型是布尔型的。因此,现在您可以使用:

HashMap<String, Boolean> map = new HashMap();
HashMap map=newhashmap();
然而,更合适的解决方案是使用:

HashMap<String, Object> map = new HashMap();
HashMap map=newhashmap();

因为您并不总是知道值的类型。因此,在这种情况下,将其设置为对象可能更有帮助。请注意,对象的值也可以为
null
,因此此解决方案将涵盖所有情况。

即使
null
是云中Firestore,也不要将
null
存储为值,而是存储布尔值,例如
true
。这样,您要查找的对象的类型是布尔型的。因此,现在您可以使用:

HashMap<String, Boolean> map = new HashMap();
HashMap map=newhashmap();
然而,更合适的解决方案是使用:

HashMap<String, Object> map = new HashMap();
HashMap map=newhashmap();

因为您并不总是知道值的类型。因此,在这种情况下,将其设置为对象可能更有帮助。请注意,对象的值也可以为
null
,因此此解决方案将涵盖所有情况。

为什么要将“管理员”存储为映射?因为您想将“管理员”存储为ID,所以您可以简单地使用列表,对吗?或者您有其他使用案例吗?如果您确实需要将其存储为映射,您可以在hashmapI store中将“Object”用作值类型作为映射,因为我可能希望获取用户管理的组列表,并且由于映射字段与其他文档字段一样被索引,因此我可以执行firestore查询以轻松获取该列表。我可以用firestore列表来做这件事吗?它们也被索引了吗?为什么要将“管理员”存储为映射?因为您想将“管理员”存储为ID,所以您可以简单地使用列表,对吗?或者您有其他使用案例吗?如果您确实需要将其存储为映射,您可以在hashmapI store中将“Object”用作值类型作为映射,因为我可能希望获取用户管理的组列表,并且由于映射字段与其他文档字段一样被索引,因此我可以执行firestore查询以轻松获取该列表。我可以用firestore列表来做这件事吗?它们也被索引了吗?我将其存储为映射,因为我可能希望获取用户管理的组列表,并且由于映射字段与其他文档字段一样被索引,因此我可以执行firestore查询以轻松获取该列表。我可以用firestore列表来做这件事吗?它们也被索引了吗?在这种情况下,您可以简单地将数据存储在非对数据结构中。所以你应该使用数组而不是映射。所以,数组内容被索引,并且和映射查询一样快?是的,有。你可以毫无问题地使用它们。好的,现在清楚了。是否有一种类似于arrayContains的方法,但对于地图查询其地图包含某个键的文档,我将其存储为地图,因为我可能希望获取用户管理的组列表,并且由于地图字段与其他文档字段一样被索引,我可以执行firestore查询以轻松获取该列表。我可以用firestore列表来做这件事吗?它们也被索引了吗?在这种情况下,您可以简单地将数据存储在非对数据结构中。所以你应该使用数组而不是映射。所以,数组内容被索引,并且和映射查询一样快?是的,有。你可以毫无问题地使用它们。好的,现在清楚了。是否有一种类似于arrayContains的方法,但用于地图查询其地图包含某个键的文档