android - 循环将文档添加到 Google Firestore
问题描述
我正在尝试遍历 aList
以将每个项目添加到google firestore doc
. 但是,我面临的问题是只有最后一项List
被添加到 doc中。
注意:该行print("=== $i POST SUCCESSFULLY ADDED ====")
按预期打印增量 5 次
问题:如何让这个循环将所有项目添加到 firestore 文档?
void addPost() {
DocumentReference documentReferencer = _firestore.collection('posts').doc();
var i = 0;
while (i < 5) {
documentReferencer.set(postsData[i]);
print("=== $i POST SUCCESSFULLY ADDED ===="); //PRINTS 5 TIMES
i++;
}
}
解决方案
我不完全知道您的问题出在哪里,但看起来您的代码忽略了将数据发布到服务器是一项asynchronous
操作这一事实。
换句话说,我希望您需await
要这样做。
另外,我会重构循环以提高可读性。
你的代码应该是这样的:
Future<void> addPost() async {
DocumentReference documentReferencer = _firestore.collection('posts').doc();
for(final post in postsData) {
await documentReferencer.set(post);
print("=== $i POST SUCCESSFULLY ADDED ===="); //PRINTS 5 TIMES
}
}
推荐阅读
- php - 单击它们时,jquery数据表中的下拉菜单链接不起作用
- python - 使用 Python 中的最小化时 Julia 中的函数和 Lambda 表达式
- python - 2 个变量应该会影响我的计算,但计算无法通过 if
- html - 为什么这个类“font-weight-bold”不起作用?[引导程序]
- reactjs - 为什么单击复选框时测试文本会短暂消失?
- gradle - CI 无法下载 gradle 分发快照
- r - 配方中的 SMOTE 与 trainControl 中的 SMOTE
- python - 文本没有出现 Pygame 没有错误
- c# - 如何使用 C# MailKit 解码 ContentEncoding.SevenBit 和 ContentEncoding.EightBit MimePart
- phpspec - 构造函数中的phpspec测试逻辑