简体   繁体   English

Firebase 存储和图像查看

[英]Firebase Storage and Image View

I want to get image from Firebase Storage and than show at Image View.我想从 Firebase 存储中获取图像,而不是在图像视图中显示。 I trying this code but not working.我正在尝试此代码但不起作用。 Always I getting my "ERROR" toast message.我总是收到“错误”吐司消息。 App is opening but I dont see my JPEG.应用程序正在打开,但我没有看到我的 JPEG。

** I found one way but it is not enough for me. ** 我找到了一种方法,但这对我来说还不够。

If I delete 'com.google.firebase:firebase-auth:19.3.2' from build gradle, this code working.如果我从构建 gradle 中删除 'com.google.firebase:firebase-auth:19.3.2' ,则此代码有效。 I need FirebaseAuth because I have User login and logout page.我需要 FirebaseAuth,因为我有用户登录和注销页面。 Do you know another way for Firebase storage and image ?您知道 Firebase 存储和图像的另一种方式吗?

Thank you for help.谢谢你的帮助。

enter image description here在此处输入图片说明

private StorageReference mStorageReference;
ImageView imageView;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_vardiya);

mStorageReference=FirebaseStorage.getInstance().getReference().child("vardiyaandroid.jpeg");
    final File localfile;
    try {
        localfile = File.createTempFile("vardiyaandroid","jpeg");
        mStorageReference.getFile(localfile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
                Toast.makeText(vardiya.this,"Resim Hazır",Toast.LENGTH_LONG).show();
                Bitmap bitmap = BitmapFactory.decodeFile(localfile.getAbsolutePath());
                (imageView=findViewById(R.id.imageView)).setImageBitmap(bitmap);

            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(vardiya.this,"ERROR",Toast.LENGTH_LONG).show();

            }
        });
        

    } catch (IOException e) {
        e.printStackTrace();
    }

I found my false.我发现我的假的。

  1. You will change this code您将更改此代码

    mStorageReference=FirebaseStorage.getInstance().getReference().child("vardiyaandroid.jpeg"); mStorageReference=FirebaseStorage.getInstance().getReference().child("vardiyaandroid.jpeg");

    with

mStorageReference=FirebaseStorage.getInstance().getReferenceFromUrl("gs://YOURAPPID.appspot.com/vardiyaandroid.jpeg"); mStorageReference=FirebaseStorage.getInstance().getReferenceFromUrl("gs://YOURAPPID.appspot.com/vardiyaandroid.jpeg"); StorageReference pathreferance =mStorageReference.child("vardiyaandroid.jpeg"); StorageReference pathreferance =mStorageReference.child("vardiyaandroid.jpeg");

and the storege rules must be this:



rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, writ, auth: if true;
    }
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM