我正在使用Flutter。我想先添加数据。如果已注册电子邮件或uid,我想更新data01 / 02或添加data01 / 02。
如何指定初始数据。
_firestore.collection('members').add({
'uid': loginUser.uid,
'email': loginUser.email,
'data01': {
'name': name,
'img_url': 'https://www.xxx.xxx/xxx.png',
'data02': {
'phone': phone,
}
}
请给我建议。
假设您将文档名称设置为loginUser.uid,则可以使用:
String rawJson = '{
"email": loginUser.email,
"data01": {
"name": name,
"img_url": "https://www.xxx.xxx/xxx.png",
"data02": {
"phone": phone,
}
}';
Map<String, dynamic> updateData = jsonDecode(rawJson); // import 'dart:convert';
final userDocument = await Firestore.instance.document('members/$loginUser.uid');
final userDocumentGet = userDocument.get().then((value) {
if (value == null || !value.exists) {
//a document for the member can NOT be found
Firestore.instance.document('members/$loginUser.uid').setData(updateData);
} else {
//a document for the member is found
Firestore.instance.document('members/$loginUser.uid').updateData(updateData);
}
});