Firebaseには、オフラインでもデータベースを使用してデータベースにデータを送信する優れたオプションがあり、接続が再び確立すると、データが自動的にデータベースに送信されます。
インターネットがオフの場合でも画像を送信するようなFirebaseストレージを使用してそれを行うことは可能ですか?インターネットが再びオンになると、画像ファイルが自動的に送信されますか?
もしそうなら、どうすればそれを行うことができますか? Firebaseを使用していない場合、他のオプションはありますか?
はい。 Firebase Storageクライアントは、アップロードの再開をサポートしています。アップロードについては、Firebase Storageのドキュメントをご覧ください( 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を処理する1つの方法:
uploadTask
を作成するときに、sessionUri
を取得してアプリのSharedPreferences
に保存します。uploadTask
が完了したら、アプリのSharedPreferences
からsessionUriを削除します。sessionUri
にSharedPreferences
があるかどうかを確認します。その場合は、アップロードを再開してください。