java如何根据条件从firebase数据库获取图像url并将其加载到ImageView中?
我对安卓系统还不熟悉,并且一直在关注以下问题-
在JSON中:
{ "-LwDpiyCDf8tsjTfTF3Q" : { "productImage" : "https://firebasestorage.googleapis.com/v0/b/bookmybook-13560.appspot.com/o/bmbuploads%2F1576501910798.jpg?alt=media&token=a431aec5-0994-4acf-b597-e31b87775ac8", "productName" : "image" }, "-LwDsEXofrJaz9SAjPi4" : { "productImage" : "https://firebasestorage.googleapis.com/v0/b/bookmybook-13560.appspot.com/o/bmbuploads%2F1576502569064.jpg?alt=media&token=573bcfc0-d29e-4e8c-9076-af2868c1c7a5", "productName" : "mgj" } }
我的代码中有产品名称,我希望通过将产品名称作为WHERE条件传递来获取图像(在本例中为productImage),并最终将该图像加载到ImageView中
我尝试使用以下代码:
Query query = databaseReference.child("bmbuploads").orderByChild("productName").equalTo("image");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我不知道我提出的问题是否正确。而且,即使在搜索了很多之后,我也不知道在onDataChange()方法中要写什么代码
请在这方面指导我
# 1 楼答案
查询在
onDataChange
中是正确的。您需要从数据库中检索值:添加对节点
bmbuploads
的引用后,需要迭代才能检索子节点productImage
# 2 楼答案
# 3 楼答案
要获取
productImage
属性的值,请使用以下代码行:请参见,即使要返回单个结果,也必须使用
getChildren()
方法循环productImage
对象。此对象应包含对象列表。即使只有一个结果,也需要迭代