即使您处于脱机状态,Firebase也可以选择使用他们的数据库并将数据发送到他们的数据库,然后当连接再次启动时,它会自动将数据发送到数据库。
即使互联网关闭,也可以使用Firebase存储,例如发送图像,然后当互联网再次启动时,它会自动发送图像文件吗?
如果是这样,我该怎么办?如果没有使用Firebase,还有其他任何选项吗?
答案 0 :(得分:10)
是。 Firebase存储客户端支持恢复上载。 有关上传的信息,请参阅Firebase存储文档(iOS,Web,Android)。
从那里开始Android:
uploadTask = mStorageRef.putFile(localFile);
sessionUri = uploadTask.getUploadSessionUri();
//save the sessionUri to persistent storage in case the process dies.
然后继续:
//resume the upload task from where it left off when the process died.
//to do this, pass the sessionUri as the last parameter
uploadTask = mStorageRef.putFile(localFile,
new StorageMetadata.Builder().build(), sessionUri);
处理sessionUri的一种方法:
uploadTask
时,请获取sessionUri
并将其存储到应用SharedPreferences
。uploadTask
完成后,从应用SharedPreferences
中删除sessionUri。sessionUri
中是否有SharedPreferences
。如果是这样:继续上传。答案 1 :(得分:1)
从技术上讲,对于给定的OP问题,接受的答案是错误的
即使互联网关闭也发送图像
接受的答案是关于开始下载后恢复下载的信息,该下载内容虽然可以更正但不能正确解决答案。
正确的答案是“否”,如果设备未连接到Internet,则无法将图像上传到Firebase Firestore,上传将会失败,并且不会自动重启上传操作。
如前所述,您必须连接互联网,并且租期足够长才能开始上传并从Firebase获取uploadsessionuri URI。上传开始后,您可以继续上传using this sample code或上面的代码。
如文档中所述,简历URI的有效期约为7天,但是开发人员有责任确保自上传开始以来文件内容没有发生更改。