【发布时间】:2019-07-30 07:11:44
【问题描述】:
我正在尝试提取名为“imageUrl”的 URL,以便从 Firebase 实时数据库的 URL 中检索图像,如下所示:
这是 Firebase 实时数据库中的数据库结构:
我有这个数据库:
{
"Image": {
"01": {
"id": "1",
"name": "img1",
"imageUrl": "https://www.pexels.com/photo/beach-calm-clouds-coast-457881/"
},
"02": {
"id": "2",
"name": "img2",
"imageUrl": "https://www.pexels.com/photo/sea-beach-holiday-vacation-42151/"
}
}
}
这是 Android Studio 中的一个 Activity:
public class BigToePose extends AppCompatActivity {
private Context context;
private ImageView img;
private FirebaseDatabase database;
private DatabaseReference mReference;
private DatabaseReference childReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bigtoepose);
context = this;
img = findViewById(R.id.imageView);
database = FirebaseDatabase.getInstance();
mReference = database.getReference();
childReference = mReference.child("Image").child("01");
}
@Override
protected void onStart() {
super.onStart();
childReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String url = dataSnapshot.child("imageUrl").getValue(String.class);
Picasso.with(context)
.load(url)
.into(img);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
我尝试将此代码作为要从 Android Studio 中的另一个 Activity 移动到的 Activity 执行,但看起来该 Activity 没有显示。我怎样才能让它工作?
【问题讨论】:
-
请添加更详细的数据库结构截图。
-
正如@AlexMamo 所说,我们确实需要了解有关您的 Firebase 结构的更多详细信息,因此请在问题中包含这些信息。但是,请不要将 Firebase 数据库结构作为链接或图像包含在内。将代码和结构包含为文本,这样如果我们想在答案中使用它,我们就不必重新输入它。要获取您的 Firebase 结构,请使用 Firebase 控制台->导出 JSON,然后复制并粘贴您的结构的 sn-p。见images and links are evil
-
哦 - 看来您可能正在使用数组来存储数据。通常有更好的存储选项 - 请参阅遗留但仍然相关的博客文章 Arrays Are Evil 了解其他一些想法。
-
我将json格式结构添加为文本。
标签: android firebase firebase-realtime-database imageurl