如何在Firebase中管理添加和更新数据

问题描述 投票:0回答:1

我正在使用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,
        }
    }

请给我建议。

firebase flutter google-cloud-firestore
1个回答
1
投票

假设您将文档名称设置为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);

    }
});
© www.soinside.com 2019 - 2024. All rights reserved.