检查是否使用flutter在Cloud Firestore上创建了文档

时间:2018-12-28 06:45:54

标签: dart flutter google-cloud-firestore

我正在使用Flutter和Firebase开发一个移动应用程序。我想在Cloud Firestore上创建一个新文档,并获取响应(无论该文档是否已创建)。

如果移动应用程序无法访问Internet,则该请求将被保存并在移动设备重新联机时运行。如果手机在线,我会收到回复;如果手机不在网上,我不会收到回复。

Future<Vote> commitVote(Vote vote) async {

    DocumentReference ref = voteCollection.document(vote.id1+"-"+vote.id2);

    final Map<String, dynamic> data = vote.toMap();

    Vote result = Vote.fromMap(data);
    await ref.setData(data).then((doc) {
      print("doc save successful");
    }).catchError((error) {
      print("doc save error");
      print(error);
    });
    return result;
  }

我想设置连接的超时时间,如果保存了文档,则让函数返回true;如果未保存文档(设备处于脱机状态),则让函数返回false。

1 个答案:

答案 0 :(得分:1)

await ref.setData(data).then((doc) {
      print("doc save successful");
    }).timeout(Duration(seconds:10)).catchError((error) {
      print("doc save error");
      print(error);
    });

如果setData事务在10秒钟内未完成,这将打印文档保存错误