【问题标题】:Displaying images using Picasso isn't working使用毕加索显示图像不起作用
【发布时间】:2019-12-12 17:18:03
【问题描述】:

我尝试显示来自 Firebase 存储的图像。因此,我将图像上传到 firebase 存储并将链接保存到 firebase 实时数据库中。当我尝试使用毕加索图书馆(v 2.71828)检索它时,它不起作用,但根据代码,任务每次都成功。回看Firebase Storage,图片上传成功,图片链接成功存入firebase实时数据库。

我用 Glide 库尝试了相同的代码,但遇到了同样的问题。

预期:使用毕加索显示图像 得到:没有错误,没有图像显示

private void retrieveUserInfo() 
{
    rootRef
    .child("Users").child(currentUserID)
    .addValueEventListener(new ValueEventListener() 
  {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) 
    {
        // if the user has created his profile then
        if((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild(("image")))))
        {
            String retrieveUserName = dataSnapshot.child("name").getValue().toString();
            String retrieveUserStatus = dataSnapshot.child("status").getValue().toString();
            String retrieveProfileImage = dataSnapshot.child("image").getValue().toString();

            userName.setText(retrieveUserName);
            userStatus.setText(retrieveUserStatus);
            // using picasso library we will display the profile image
            Picasso.get().load(retrieveProfileImage).into(userProfileImage);


        }

        // if the user don't wanna display image
        else if((dataSnapshot.exists()) && (dataSnapshot.hasChild("name")))
        {
            String retrieveUserName = dataSnapshot.child("name").getValue().toString();
            String retrieveUserStatus = dataSnapshot.child("status").getValue().toString();

            userName.setText(retrieveUserName);
            userStatus.setText(retrieveUserStatus);
        }
        else
        {
            //userName.setVisibility(View.VISIBLE);
            Toast.makeText(SettingsActivity.this, "Please set and update your profile information...", Toast.LENGTH_LONG).show();
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) 
    {

    }
});

}

【问题讨论】:

  • 请在浏览器中检查您的网址是否正常
  • 您能否提供您从 db 获取的数据类型,请记录 retrieveProfileImage。为了了解 Firebase 存储 url 令牌在一定时间后过期,因此更好地存储文件的位置。

标签: android firebase android-studio firebase-storage picasso


【解决方案1】:

我猜您没有从实时数据库正确接收 URL。 我会先尝试打印 URL,以确保您正确接收。

【讨论】:

    【解决方案2】:

    您是否获得了互联网许可?

    你应该在你的清单中有这个。

    <uses-permission android:name="android.permission.INTERNET" /> 
    

    【讨论】:

    • 是的,我愿意。清单可以使用权限。除了显示从 firebase 数据库检索到的图像之外,firebase 中的所有内容
    猜你喜欢
    • 2021-10-31
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 2021-06-09
    • 2016-07-31
    相关资源
    最近更新 更多