【问题标题】:Image loading and uploading to Firebase Storage not working in android and firebase console showing "error loading preview"图像加载和上传到 Firebase 存储无法在 android 和 firebase 控制台中显示“错误加载预览”
【发布时间】:2020-04-19 06:31:13
【问题描述】:

Firebase 存储在 Firebase 控制台中显示“错误加载预览”

最初在上传和加载过程中,它在我的应用程序中运行良好。两天后,我正在检查我的应用程序是否正常工作。

Firebase 控制台的屏幕截图:

我的图片上传代码:

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

我的图片加载代码:

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);
            }
        });

如果您知道,请帮我解决这个问题。 感谢 Firebase 专家的帮助

【问题讨论】:

  • 请仅使用android-studio 标签来回答有关 Android Studio IDE 本身的问题。对于一般的 Android 编程问题,请使用android 标签。
  • 好的。并感谢您给我指导。
  • 我也一样。 Error loading preview。两天前它工作得很好。有什么建议吗? @FrankvanPuffelen
  • 我现在正在开发的应用程序仍然无法正常工作。但完美适用于现有应用程序。我不知道为什么。
  • 与今天相同的问题,但我在Switzerland - 所以这似乎不仅仅发生在孟加拉国。

标签: java android firebase firebase-storage


【解决方案1】:

我今天刚刚向 Firebase 团队发送了有关此问题的电子邮件。

他们刚刚在半小时前回复了我的电子邮件。

我的电子邮件

Firebase 团队回复

编辑:使用 VPN 来解决这个问题。

【讨论】:

  • 太糟糕了。用户不会对使用 vpn 感兴趣。
【解决方案2】:

您说,您的项目两天前正在运行。您的图片已上传,如我所见,但未加载。这意味着代码没有问题。 可能是 firebase 更新了它的版本,这就是它产生 bug 的原因。您可以关注更新的文档。在我之前的 iOS 项目中,我遇到了 firebase 默认 authUI 的相同类型的错误,因为 firebase 有某种类型的更新,所以他们在更新的文档中更改了一些说明。我还要求更新 android studio 及其插件,如果你还没有迁移到 androidX。迁移后你已经更改了 xml 设计代码(如依赖项引用等),否则它将导致应用程序崩溃

这是用于 Android 上传文件的 firebase 文档中的示例 java 代码

必须创建引用

// 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

然后从本地存储上传图片

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.
        // ...
    }
});

用于下载图片

创建参考

// 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");

下载图片到本地文件

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
    }
});

更多详情 https://firebase.google.com/docs/storage/android/upload-files https://firebase.google.com/docs/storage/android/download-files

【讨论】:

  • 我正在尝试但仍然无法正常工作,它没有执行任何成功或失败功能
  • 没关系,可能是google存储服务器的问题。 firebase.google.com/support/troubleshooter/contact 。如果可能,请直接与他们联系。请在发送消息时具体说明。选择电子邮件主题作为错误报告。
  • 各位,我也面临同样的问题。完全工作的项目已经解析了除图像之外的所有信息。两天前它运行良好。现在图像甚至没有显示在存储控制台上。总是收到Error loading preview。请帮忙!
【解决方案3】:

这是Bangladesh的穆宾

我们名为“Ostad”的应用程序已在 Google Play Store 启动并运行了 4 个月。而且,我们的用户资料图片托管在Firebase Storage 中。从今天开始,用户图像突然没有加载到应用程序中。在检查了FirebaseGoogle Cloud Platform (GCP) 中的所有内容后,我意识到这可能是Mumbai Region 中的Google Cloud 服务器的问题。而且,我们等待它是否自动修复。

我们的猜测是正确的。大约 20 分钟前,图像正在加载。
现在,一切正常。

我认为,您也面临同样问题的麻烦。

只是等着看它是否会再次起作用。

编辑:使用 VPN 来解决这个问题。

【讨论】:

  • 我希望它会起作用,因为您告诉我昨天正在加载图像。这意味着你的代码没问题。现在就等谷歌修复他们的存储服务器。
  • 我现在正在开发的应用程序仍然无法正常工作。但完美适用于现有应用程序。我不知道为什么。
  • 另外 2 位开发人员刚刚就这个问题亲自联系过。他们也面临着同样的问题。他们还在孟买地区选择了他们的 firebase 服务器。我们也再次面临这个问题。有时它可以工作,并且大部分时间存储服务器都在关闭。我们现在所能做的就是,我们可以通过我们的服务器区域向 Firebase 支持团队发送电子邮件告知此问题。
猜你喜欢
  • 2021-01-25
  • 2021-08-12
  • 2020-10-18
  • 1970-01-01
  • 2021-08-11
  • 2020-06-14
  • 2021-08-21
  • 2022-07-28
相关资源
最近更新 更多