【问题标题】:Firebase storage not showing dataFirebase 存储不显示数据
【发布时间】:2017-05-15 09:22:49
【问题描述】:

我正在使用 Firebase 存储来保存图像/视频/和音频。我有两个 API 密钥:调试和发布。当我在手机上运行应用程序时,一切正常。但是,当我生成发布 apk 时,有时它可以正常工作,而有时它根本就不行。

有什么可能导致这种情况的想法吗?

FirebaseStorage storage = FirebaseStorage.getInstance();
        StorageReference storageRef = storage.getReferenceFromUrl("gs://manager-plus.appspot.com");
        StorageReference riversRef = storageRef.child("media/" + mediaDataList.get(i).name+SystemClock.elapsedRealtime());
        Uri uri;
        if (mediaDataList.get(i).type == 1)
            uri = Uri.fromFile(LoadBitmaps.saveBitmap(LoadBitmaps.decodeSampledBitmap(new File(mediaDataList.get(i).url), 100, 100)));
        else uri = Uri.fromFile(new File(mediaDataList.get(i).url));
        uploadTask = riversRef.putFile(uri);
        uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    Long size = Long.parseLong(mediaDataList.get(i).size) + Prefs.getInstance(getApplicationContext()).getSize();
                    if (Double.parseDouble(formatSize(size)) <= 2.0) {
                        Prefs.getInstance(getApplicationContext()).setSize(Long.parseLong(mediaDataList.get(i).size) + Prefs.getInstance(getApplicationContext()).getSize());
                        DataOnline dataOnline = new DataOnline();
                        dataOnline.link = String.valueOf(taskSnapshot.getDownloadUrl());
                        dataOnline.type = mediaDataList.get(i).type;
                        dataOnline.name= mediaDataList.get(i).name;
                        dataOnline.save();
                    } else {
                        Toast.makeText(getApplicationContext(), "Please subscribe to the paid version", Toast.LENGTH_SHORT).show();
                    }
                }
            }
        })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception exception) {
                        Toast.makeText(getApplicationContext(), exception.getMessage(), Toast.LENGTH_LONG).show();
                    }
                })
                .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                        //calculating progress percentage
                        double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
                        build.setProgress(100, (int) progress, false);
                        notificationManager.notify(101, build.build());
                    }
                });

谢谢,

【问题讨论】:

  • 您应该在您的陈述中提供更多信息“有时它可以正常工作,而有时它根本不能”,您遇到了哪些例外情况?
  • 我没有遇到任何异常。我正在从 android studio 运行应用程序,一切正常。我可以在云端上传和预览所有内容。但是,当我生成签名的 apk 时,如果我在云上上传一些东西,它会上传并且我可以在存储部分看到它,但是当我尝试通过应用程序预览它时它没有显示。
  • 显示您的代码,您如何管理节点以检索数据
  • @Rasi 媒体上传成功后,我将下载链接保存在本地
  • 如果您可以回答自己的问题并接受它,那可能对其他人有所帮助。谢谢。

标签: android firebase firebase-storage


【解决方案1】:

经过这么多调试,原来问题不是firebase引起的;这实际上是由于active-android。我用来在本地缓存链接的库。

因此,对于遇到此问题的任何人: 请先检查: developer.android.com/studio/build/shrink-code.html

在我的例子中,我使用了 Sugar ORM 而不是 activeandroid,我的问题就解决了。

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多