Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在firebase中更新数据_Firebase_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

在firebase中更新数据

在firebase中更新数据,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我有一个注册页面,跨多个页面收集用户数据,如地址、出生日期、姓名等 在每个页面上,我都有一些运行的代码,用于更新firebase中文档中的各个字段。比如说 SECTION 1: onPressed: () async { if(_formKey.currentState.validate()) { await DatabaseService(uid: user.uid).up

我有一个注册页面,跨多个页面收集用户数据,如地址、出生日期、姓名等

在每个页面上,我都有一些运行的代码,用于更新firebase中文档中的各个字段。比如说

SECTION 1:
               onPressed: () async {
                      if(_formKey.currentState.validate()) {
                        await DatabaseService(uid: user.uid).updateUserData(
                          _currentPinCode ?? userData.pinCode,
                        );
                      }
                      Navigator.pushNamed(context, Routes.signup4);
                  }
我有一个名为database.dart的文件,用于处理数据库查询。在这里,我有一个名为updateUserData的函数,其中包含我希望在firebase文档中更新的字段。见下文:

SECTION 2:
  final String uid;
  DatabaseService ({ this.uid });

  final CollectionReference userCollection = Firestore.instance.collection('users');
  
  Future updateUserData(String firstName, String middleName, String lastName,
                        String dateOfBirth, String phone, int pinCode, String addressLn1,
                        String addressLn2, String city, String postCode, String country,
  ) async {
    return await userCollection.document(uid).setData({
      'firstName': firstName,
      'middleName' : middleName,
      'lastName' : lastName,
      'dateOfBirth' : dateOfBirth,
      'phone' : phone,
      'pinCode' : pinCode,
      'addressLn1' : addressLn1,
      'addressLn2' : addressLn2,
      'city' : city,
      'postCode' : postCode,
      'country' : country,
    });
  }

当第1节中的代码运行时,它当然缺少第2节中的所有参数,因此失败


我想知道当数据在应用程序的多个页面上时,更新firebase文档的最佳方式是什么。在地图的上下文跨越多个页面的情况下,收集地图中的所有数据是更好的做法,还是在每个页面完成后更新数据库更好?如果是这样,最好的方法是什么

我知道这是一个奇怪的问题,但有点卡住了,任何帮助都会很好


谢谢你

地图中收集所有内容会更好,因为这样可以减少你必须进行的写入操作。最好的方法是什么,请举个例子。我建议你先自己尝试一下。在第一页实例化一个
映射
,并将其传递到最后一页,从每个页面添加数据。在最后一页上,使用
Map
设置firestore中的数据。在
Map
中收集所有内容会更好,因为这样可以减少您必须执行的写入操作。最好的方法是什么,请您举个例子。我建议您先尝试一下。在第一页实例化一个
映射
,并将其传递到最后一页,从每个页面添加数据。在最后一页上,使用
映射设置firestore中的数据。