gpt4 book ai didi

java - Android 的 Firestore 超时

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:03 24 4
gpt4 key购买 nike

我目前正在构建一个应用程序,将用户的博客文章保存在 Firestore 服务器中。一切正常,但我发现帖子在不稳定的网络连接下无法上传。

我试图为 Firestore 实例设置一个超时,但 Firestore 库似乎没有超时选项。问题是,因为没有超时设置,应用程序不知道何时关闭上传屏幕(微调对话框)。

我正在考虑创建一个 HandlerObservableThread 并手动设置超时。在指定的超时期限后,让应用关闭上传屏幕。但是,Firestore 客户端会在超时后继续在后台重试上传。所以这种方法不适合这种情况……

对此有什么解决方案吗?如果我可以为 Firestore 客户端本身设置超时,这意味着让客户端在给定的超时期限后调用 onFailure() ,我可以将帖子保存为本地存储中的草稿,并在设备恢复稳定连接后重试。

最佳答案

Firestore 会立即将文档添加到其本地缓存中。然后它将尝试将该文档与服务器同步。要检测它是否能够这样做,请查看 Gastón 的回答。

要检测何时将文档写入服务器,请使用SuccessListener。此示例来自 Firestore documentation on adding documents显示如何:

// Add a new document with a generated id.
Map<String, Object> data = new HashMap<>();
data.put("name", "Tokyo");
data.put("country", "Japan");

db.collection("cities")
.add(data)
.addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
Log.d(TAG, "DocumentSnapshot written with ID: " + documentReference.getId());
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "Error adding document", e);
}
});

关于java - Android 的 Firestore 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50594146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com