将地图添加到 Firestore Android 上的数组
Posted
技术标签:
【中文标题】将地图添加到 Firestore Android 上的数组【英文标题】:Adding a map to an array on Firestore Android 【发布时间】:2021-12-25 17:56:32 【问题描述】:我在将数据保存到 Firestore 数据库时遇到了一些问题。我的“会议”集合中的每个文档都有一个用户列表(地图),但我似乎无法添加任何内容或创建新文档。我阅读了文档,它说要使用我尝试过的 FieldValue.arrayUnion():
private fun addUserToMeeting(user: User)
val meetingRef = database.collection("meetings").document(meetingID.toString())
val userData = hashMapOf(
"email" to user.email,
"latitude" to user.latitude,
"longitude" to user.longitude,
"token" to user.token,
"username" to user.username
)
meetingRef.update("users", FieldValue.arrayUnion(userData))
只要单击“将用户添加到会议”按钮,就会调用此方法。
这是我的架构图片:
有人对我可能做错了什么有一些建议吗?
【问题讨论】:
代码有什么问题?如果您在代码运行时显示文档的“之前”和“之后”屏幕截图,可能最容易解释。 @FrankvanPuffelen 它根本没有做任何事情。当我运行它(通过单击)时,没有会议文件或任何东西。就好像没有发生任何更新一样。创建“exampleUUIDForMeeting”下的“会议”只是为了查看我是否已连接,这有点精明,但它在紧要关头起作用;它不包含任何有价值的信息。 【参考方案1】:如果文档尚不存在,则不能使用update
创建它。顾名思义,update
只能用于更新现有文档。
要在您控制的位置创建新文档,请使用set
:
meetingRef.set(hashMapOf("users" to FieldValue.arrayUnion(userData)))
另请参阅 setting a document 上的 Firebase 文档。
【讨论】:
哎呀。那绝对是它。 facepalm 我肯定会抓住它的!以上是关于将地图添加到 Firestore Android 上的数组的主要内容,如果未能解决你的问题,请参考以下文章
无法访问 Firestore 快照中的数据以将标记添加到存储在 Firebase 中的 Google 地图
如何将两个集合添加到 Firestore 中的集合 android studio