Android 将对象列表添加到我的Firestore集合

Android 将对象列表添加到我的Firestore集合,android,for-loop,kotlin,google-cloud-firestore,Android,For Loop,Kotlin,Google Cloud Firestore,我有一个名为GroupMemberEntity的模型列表 我想将该列表设置到我的集合中,每个列表都使用UUID获得自己的唯一ID 我当前的实现如下- suspend fun addGroupMembers( groupId:String, 用户:列表 )=suspendCoroutine{continuation-> var insertCounter=1 users.forEach{entity-> FIRESTORE\u数据库集合(活动\u集合) .document(UUID.randomU

我有一个名为GroupMemberEntity的模型列表

我想将该列表设置到我的集合中,每个列表都使用UUID获得自己的唯一ID

我当前的实现如下-

suspend fun addGroupMembers(
groupId:String,
用户:列表
)=suspendCoroutine{continuation->
var insertCounter=1
users.forEach{entity->
FIRESTORE\u数据库集合(活动\u集合)
.document(UUID.randomUUID().toString())
.set(实体)
.addOnSuccessListener{
插入计数器++
if(insertCounter!=users.size)return@addOnSuccessListener
continuation.resume(responseHandler.handleSuccess())
}
.addOnFailureListener{异常->
继续。继续(responseHandler.handleException(异常))
}
}
}
我觉得这可以通过不使用
forEach
循环来改进,但我不确定如何改进。一般来说,在循环中进行网络调用似乎不是一个好主意


任何建议都会很有帮助。

如果您希望每个实体都有自己的文档,则需要对每个方法使用

suspend fun addGroupMember(groupId: String, user: List<GroupMemberEntity>) {
   users.forEach {
       FIRESTORE_DATABASE.collection(ACTIVITIES_COLLECTION)
                .document(UUID.randomUUID().toString())
                .set(entity)
                .await()
   }
}
suspend-fun-addGroupMember(groupId:String,user:List){
users.forEach{
FIRESTORE\u数据库集合(活动\u集合)
.document(UUID.randomUUID().toString())
.set(实体)
.等待
}
}

另一种可能更简单的方法是在一个文档中发布整个列表。您可以稍后在该文档中检索或(我认为)查询特定字段。为此,我将向您的
GroupMemberEntity
添加一个
uuid
。但是我不能100%确定这是否有效。

我可以问一下,为什么您使用侦听器方法而不是依赖关系来提供我的
kotlin协同程序
?我想问一下,为什么你的列表中的每一个实体都需要自己的文档?@Andrew关于侦听器方法——如果你有更好的方法,我很乐意听到。关于实体拥有自己的文档-这就是我决定如何构造远程数据库的原因。再说一次,如果你有更好的建议,我很高兴听到。