我正在使用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。
答案 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秒钟内未完成,这将打印文档保存错误。