firebase - 更新 Firebase 中的数据
问题描述
我有一个跨越多个页面的注册页面,该页面收集用户数据,例如地址、出生日期、姓名等。
在每个页面上,我都有一些运行代码,这些代码会更新 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,
});
}
当 SECTION 1 中的代码运行时,它当然会丢失 SECTION 2 中的所有参数,因此会失败。
我想知道当数据位于应用程序内的多个页面上时,更新 firebase 文档的最佳方式是什么。收集地图中的所有数据是否更好,地图的上下文跨越多个页面,或者在每个页面完成时更新数据库更好,如果是这样,最好的方法是什么。
我知道这是一个奇怪的问题,但有点卡住了,任何帮助都会很棒。
谢谢
解决方案
推荐阅读
- javascript - 使用 JavaScript 启用 CSS 幻灯片自动播放
- java - 如何使用 java sdk 从我的语言环境上传和下载文件到 azure adls?
- flutter - 标记未添加到地图上
- php - MySQL - 使用逗号数据进行多个 WHERE 查询
- html - 对网页进行编码,但无法弄清楚如何将图像居中放置在文本框上
- javascript - 我的引导轮播背景图像不随浏览器窗口大小调整
- asp.net-core - 我将 .NET CORE 的版本更新为 3.1,但我对 Signal R 有错误
- c++ - How can I solve libstdc++ portability problem
- php - RSS API 能够使用 Laravel 添加、删除和列出所有 RSS 资源
- php - 致命错误:在 null 问题上调用成员函数 update()