Image loading and uploading to Firebase Storage not working in android and firebase console showing “error loading preview”

我的梦境 提交于 2020-01-11 06:15:11

问题


Firebase Storage show "error loading preview" in the firebase console

Initially during uploading and loading it worked fine in my app. After Two days when I am checking if my app is working fine or not the error occurs: Screen Shot of the error here.

My image uploading code:

if(imagePath!=null) {                                  
   FirebaseStorage.getInstance().getReference("admin").child(admin.getId()).putFile(imagePath);
}

My image Loading code:

FirebaseStorage.getInstance().getReference("admin").child(image_path) .getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                Glide.with(getApplicationContext()).load(uri).centerCrop().into(profileImage);
            }
        });

Please help me how to overcome this problem if you know. Thanks Advance to firebase expertists


回答1:


I just emailed Firebase Team about this issue today.

They just replied my email just half an hour ago.

My Email

Firebase Team Reply




回答2:


You said,your project was working two days ago.Your image uploaded as I can see but isn't loading. That means there is nothing wrong with the code. May be firebase has updated it's version,that's why it created bug.You might follow the updated documentation. In my previous iOS project, I faced same type of error for firebase default authUI, as firebase had some type of update, so they changed some instructions in their updated documentation. I also request to update android studio and its plugins,migrating to androidX if you haven't.You have change xml design code (like dependency reference etc)after migration else it will crash the app

Here is the sample java code from firebase documentation for Android to upload files

Must create a reference

// Create a storage reference from our app
StorageReference storageRef = storage.getReference();

// Create a reference to "mountains.jpg"
StorageReference mountainsRef = storageRef.child("mountains.jpg");

// Create a reference to 'images/mountains.jpg'
StorageReference mountainImagesRef = storageRef.child("images/mountains.jpg");

// While the file names are the same, the references point to different files
mountainsRef.getName().equals(mountainImagesRef.getName());    // true
mountainsRef.getPath().equals(mountainImagesRef.getPath());    // false

then upload image from local storage

Uri file = Uri.fromFile(new File("path/to/images/rivers.jpg"));
StorageReference riversRef = storageRef.child("images/"+file.getLastPathSegment());
uploadTask = riversRef.putFile(file);

// Register observers to listen for when the download is done or if it fails
uploadTask.addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle unsuccessful uploads
    }
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        // taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
        // ...
    }
});

For downloading image

Create Reference

// Create a storage reference from our app
StorageReference storageRef = storage.getReference();

// Create a reference with an initial file path and name
StorageReference pathReference = storageRef.child("images/stars.jpg");

// Create a reference to a file from a Google Cloud Storage URI
StorageReference gsReference = storage.getReferenceFromUrl("gs://bucket/images/stars.jpg");

// Create a reference from an HTTPS URL
// Note that in the URL, characters are URL escaped!
StorageReference httpsReference = storage.getReferenceFromUrl("https://firebasestorage.googleapis.com/b/bucket/o/images%20stars.jpg");

Download Image to local file

islandRef = storageRef.child("images/island.jpg");

File localFile = File.createTempFile("images", "jpg");

islandRef.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
        // Local temp file has been created
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle any errors
    }
});

More Details https://firebase.google.com/docs/storage/android/upload-files https://firebase.google.com/docs/storage/android/download-files




回答3:


This is Mubin from Bangladesh

Our app called "Ostad" is up and running in Google Play Store since 4 months. And, our user profile images are hosted in Firebase Storage. Suddenly user images are not loading in the app from today. After checking all the things in the Firebase & Google Cloud Platform (GCP), I realised that maybe it was an issue with the Google Cloud servers in the Mumbai Region. And, we wait if it fixes automatically.

And our guess was correct. Just around 20 minutes before, images are loading now.
Now, all are ok.

I think, you're also facing trouble with the same issue.

Just wait to see if it works again later.



来源:https://stackoverflow.com/questions/59532052/image-loading-and-uploading-to-firebase-storage-not-working-in-android-and-fireb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!