首页 > 解决方案 > 如何在没有互联网连接的情况下将对象(带有图像和其他数据的 hashMap)上传到 Firebase 实时数据库和 Firebase 存储?

问题描述

让我解释一下我的情况。我在 Android Studio 中有一个 Activity,我在其中填写了一些内容,例如;名称,描述,...和图像。数据与来自 Firebase 存储的图像参考一起进入 Firebase 实时数据库,如下所示:

                HashMap boulderHash = new HashMap();
                boulderHash.put("boulderkey", latlong);
                boulderHash.put("userid", currentUserID);
                boulderHash.put("username", dataSnapshot.child("username").getValue().toString());
                boulderHash.put("profileimage", downloadURL2);
                ...

                final HashMap boulderImageHash = new HashMap();
                boulderImageHash.put("images", downloadURL1);
                boulderImageHash.put("profilestorage", storage);
                boulderImageHash.put("counter", counter);
                boulderImageHash.put("userid", currentUserID);

                    BoulderRef.child(latlong).updateChildren(boulderHash).addOnCompleteListener(new OnCompleteListener() {
                        @Override
                        public void onComplete(@NonNull final Task task) {
                            if (task.isSuccessful()) {


                                DatabaseReference key = BoulderRef.child(finalLatlong).child("BoulderImages").push();
                                imageKey = key.getKey();

                                BoulderRef.child(finalLatlong).child("BoulderImages").child(imageKey).updateChildren(boulderImageHash

当我单击一个按钮并且没有互联网连接时,所有这一切都会发生,我使用FirebaseDatabase.getInstance().setPersistenceEnabled(true); 所以操作正在等待连接上传。一切都很好,因为如果我不关闭应用程序,我的手机最终会恢复连接并上传数据。

当我从后台关闭应用程序时出现问题,是否有任何选项可以将此数据或操作保存到本地存储或缓存中,并像在不关闭应用程序的情况下那样自动发送?

标签: javaandroidfirebasefirebase-realtime-database

解决方案


推荐阅读