Sam*_*lah 4 firebase flutter google-cloud-firestore
我有对象数组,我想在用户在数组中输入新数据时添加新对象吗?
Firestore.instance.collection(city).document('Attractions').updateData(
"data", FieldValue.arrayUnion(obj)
);
Run Code Online (Sandbox Code Playgroud)
这显示了错误,如何用颤振来实现?
Jac*_*ack 10
@anmol.majhail 是对的,但是要解决@Sami Ullah 的问题,您必须先创建一个列表并将对象添加到列表中,如下所示:
var list = [objectBeingAdded];
Firestore.instance.collection('city').document('Attractions').updateData({"data": FieldValue.arrayUnion(list)});
Run Code Online (Sandbox Code Playgroud)
正确的格式是:
Firestore.instance.collection(city).document('Attractions').updateData({"data": FieldValue.arrayUnion(obj)});
Run Code Online (Sandbox Code Playgroud)
updateData以Map<String,dynamic>数据为准。
在您的代码中,您正在,作为键-值之间的分隔符,而应该是:
假设这是您要添加的数据
Map<String, dynamic> someData = {
'foo': 1,
'bar': true,
};
Run Code Online (Sandbox Code Playgroud)
添加具有唯一自动生成 ID 的数据:
var collection = FirebaseFirestore.instance.collection('collection');
collection
.add(someData)
.then((_) => print('Added'))
.catchError((error) => print('Add failed: $error'));
Run Code Online (Sandbox Code Playgroud)
使用您自己的 ID 添加数据:
var collection = FirebaseFirestore.instance.collection('collection');
collection
.doc('document_id') // <-- Document ID
.set(someData)
.then((_) => print('Added'))
.catchError((error) => print('Add failed: $error'));
Run Code Online (Sandbox Code Playgroud)
将对象添加到数组中:
var collection = FirebaseFirestore.instance.collection('collection');
collection
.doc('document_id') // <-- Document ID
.set({'data': FieldValue.arrayUnion(list)}) // <-- Add data
.then((_) => print('Added'))
.catchError((error) => print('Add failed: $error'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2242 次 |
| 最近记录: |