gpt4 book ai didi

android - 如何使用/Android Studio/Kotlin 访问 Firebase Firestore 中的数组字段?

转载 作者:行者123 更新时间:2023-11-29 00:54:13 25 4
gpt4 key购买 nike

我的 Cloud Firestore 数据库中有一组名为 Experience 的对象。每个体验都有一个用户名日期等,体验列表中可以有多个体验。如何访问我的体验数组的特定字段?我知道在 Dart 中,我可以输入如下内容:

querySnapshot.documents[i].data["Experience"][number of array item]["username"] 

但是我怎样才能在 Kotlin 中做同样的事情呢?

最佳答案

当您将一组自定义(体验)对象添加到 Cloud Firestore 数据库中时,它将作为列表添加到数据库中。如果您的数据库类似于:

Firestore-root
|
--- myCollection (collection)
|
--- myDocument (document)
|
--- experiences (array)
|
--- 0 (Experience object)
| |
| --- username: "UserName"
| |
| --- date: May 25, 2019 at 12:12:12 PM UTC+3
|
--- 1 (Experience object)
|
--- username: "AnotherUserName"
|
--- date: May 24, 2019 at 13:13:13 PM UTC+3

请注意,目前无法通过简单地从 experiences 中获取数据来获取自定义(体验)对象的列表。属性(property)。使用时:

List<Object> list = (List<Object>) document.get("experiences");
Object item = list.get(yourIndex);

item对象实际上是一个 HashMap而不是 Experience目的。上面几行代码我是用Java写的,所以你可以更清楚的看到返回类型。所以像下面这样一行:

val experience: Experience = (list[yourIndex] as Experience).username

不会工作。如果您尝试转换 HashMapExperience对象,您将收到如下所示的错误:

java.lang.ClassCastException: java.util.HashMap cannot be cast to com.example.Experience

所以要解决这个问题,您必须编写自己的代码,它可以帮助您转换 HashMap反对 Experience目的。此外,如果您需要 List<Experience> ,您还需要转换 List<HashMap>反对 List<Experience>对象。

关于android - 如何使用/Android Studio/Kotlin 访问 Firebase Firestore 中的数组字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56299348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com