首页 文章

Flutter / Dart:将数据保存在firestore中的不同文档中

提问于
浏览
0

我正在尝试使用以下代码将数据添加到firestore .
我选择了几个功能,如食物,字段,日期,时间和位置 . 当我按下一个按钮 Future _addAll 函数被调用,上面的数据被保存到firestore中 .

保存页面后移动到主页面 . 问题从这里开始 . 当我选择不同的数据并尝试使用新的documentID将其保存到firestore时,它只会覆盖到上一个文档,除非我刷新页面 .

具体来说,当我按下按钮时,数据存储在名为的文档中
-LKV8ZPIAUwk329KqMac . 当我选择不同的数据并尝试保存到新文档时,它又被保存了
-LKV8ZPIAUwk329KqMac

有没有办法当我按下它每次保存到一个新文件:)提前谢谢你 .

Future _addAll(BuildContext context, List chooseFood, List chooseField, String date, String time,
double latitude, double longitude, String text, String uid, String partnerUid) async {
  _controller.clear(); //clear text message
  var sendRequestID; //variable to store documentID
  List connections = new List();

auth.currentUser().then((user) async { //save data to collection('connect')
await docRef.setData({
  'createdTime': DateTime.now(),
  'foods': chooseFood,
  'fields': chooseField,
  'meet_date': date,
  'meet_time': time,
  'latitude': latitude,
  'longitude': longitude,
  'one_word': text,
}).whenComplete(() {
  sendRequestID = docRef.documentID;
  print("DB 저장 $sendRequestID");
  connections.add(sendRequestID);
}).catchError((e) => print(e));

await docRef.collection('connected_users').document('send_request').setData({ //create collection inside a collection
  'email': user.email,
  'name': user.displayName,
  'photoUrl': user.photoUrl
}).catchError((e)=>print(e));
}

1 回答

  • 1

    您可以使用 collection(...).add(data) ,相当于 collection(...).document().setData(data) .
    这将添加一个新文档 . 你必须在 CollectionReference 上使用它 .

相关问题