【发布时间】:2019-08-20 10:53:36
【问题描述】:
我想将我的 Flutter 测试应用中的列表添加到我的 Google Firestore。
这是我的方法,它添加了所有数据:
void postToFireStore(
{String mediaUrl, String location, String description}) {
var reference = Firestore.instance.collection('insta_posts');
reference.add({
"marked_friends": [chipstuete.toString()],
"username": currentUserModel.username,
"location": location,
"likes": {},
"mediaUrl": mediaUrl,
"description": description,
"ownerId": googleSignIn.currentUser.id,
"timestamp": new DateTime.now().toString(),
}).then((DocumentReference doc) {
String docId = doc.documentID;
reference.document(docId).updateData({"postId": docId});
});
}
一切正常,期待列表“marked_friends”...
列表“chipstuete”有多个字符串:
[马丁·苏伯特、莉娜·赫斯勒、费雯·琼斯]
但我的 Firestore 看起来像这样:
目前整个列表存储在marked_friends[0]...
我需要更改什么,我的列表“chipstuete”的每个条目都存储在 Firestore 中我的数组“marked_friends”的单独字段中?
最好的问候!
【问题讨论】:
-
删除
toString()和括号? firestore api 将为您序列化它们。"marked_friends": chipstuete应该可以正常工作 -
那个不行,我之前试过。 Firestore 中没有创建新文档,控制台显示:“未处理的异常:无效参数:'AppProfile' 的实例”......这就是我尝试将列表项转换为字符串的原因。
-
这是因为自动序列化仅适用于核心 dart 类型,如
int、bool和List等。对于自定义类型,您需要自己序列化它们
标签: list firebase arraylist flutter google-cloud-firestore