【发布时间】:2021-07-28 01:40:36
【问题描述】:
我正在观看一个视频来创建一个简单的应用程序(只是为了练习概念),用户可以在其中输入标题和他们的想法。此数据将被发送到 Firestore。
但是,我对通过 HashMap 发送数据的部分感到困惑:
Map<String, Object> data = new HashMap<>();
data.put(STRING_TITLE, title);
data.put(STRING_THOUGHTS, thoughts);
标题和思想基本上只是用户输入标题和思想的字符串值。
String thoughts = edtThoughts.getText().toString().trim();
String title = edtTitle.getText().toString().trim();
之后,我所做的只是将它传递给 journalRef:journalRef.set(data),其中 journalRef 只是我的数据库的 DocumentReference:
private FirebaseFirestore db = FirebaseFirestore.getInstance();
DocumentReference journalRef = db.collection("Journal").document("MyThoughts");
我的问题是:为什么我们将数据传递为Map<String, Object> 而不是Map<String, String>。标题和想法不只是用户输入的字符串值吗?
编辑:
另外,当我去 Firestore 的时候,为什么它把想法和标题显示为一个字符串而不是一个对象(在 HashMap 中声明)?
谢谢!
【问题讨论】:
-
getText()已经返回String。您无需在String上致电toString()。 -
你可以将它设置为任何你喜欢的为你编译的东西。
set(data)的实际参数是Object。一旦它进入该方法,你的泛化就会丢失。 -
哦,我明白了。谢谢!
标签: java android firebase google-cloud-firestore hashmap