【发布时间】:2019-09-15 21:41:26
【问题描述】:
我用链接创建了一个 Firebase 数据库(这些是指向我的存储的链接,带有一些图像)
存储:
我尝试连接到我的数据库并获取 Page_1 的值,例如通过按下按钮
private DatabaseReference mRef;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mRef = FirebaseDatabase.getInstance().getReference().child("Chapters").child("Chapter 1").child("Page_1");
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String value = String.valueOf(dataSnapshot.getValue());
textView.setText(value);
Picasso.get().load(value).into(page_holder);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
但是当我运行我的应用程序时出现了一个异常,毕加索一行说:
目标不能为空。
如果我删除了我的毕加索并且只将 Page_1 的值放入 textView,它会显示正确的值(这意味着我实际上得到了我的值并且它不为空 )
(对不起,黑色图案,我认为这些行可能包含一些重要的东西,比如数据库的名称(很可能不是,但我是这样的菜鸟))
附言 我注意到的一件事是,当我将 Page_1 的值放入 TextView 时,会有一个一点延迟。所以我猜毕加索试图在加载之前获得“目标”。 我试着做一个检查器之类的东西
String value_from_database = textView.getText().toString();
if (TextUtils.isEmpty(value_from_database)){
textView.setText("Image is loading|Doesn't exist");
}
else {
Picasso.get().load(value_from_database).into(page_holder);
}
但我还是失败了。 Picasso 显示相同的异常/错误。
请告诉我如何解决?
【问题讨论】:
-
你初始化了吗
page_holderImageView -
看起来
page_holder没有初始化。见stackoverflow.com/questions/26790301/…,这是我搜索picaso Target must not be null时得到的第一个结果。
标签: java android firebase picasso