在我们的应用中,我们必须检索当前用户下的日记名称并将其显示在 ListView
中。
我们提到了许多与我们的问题类似的问题,但没有一个能派上用场。任何帮助,将不胜感激。提前致谢!
在图中所示的 Firebase 结构中:
一个用户可以拥有任意数量的日记(假设这张图片中的用户有 3 个) 日记,即海得拉巴、迪拜和多伦多
每一篇日记下面都有图像和经历 用户。
目的是仅获取正在考虑的用户的日记名称
在每本日记下,都有图像(我们能够将图像检索到 listview
中;在 fragment 中显示单独的图像)
预期输出是 - 一个新的 ListView
,应填充日记名称 - 海得拉巴、金奈和类加罗尔 image
最佳答案
根据您最后的评论,要获取ListView
中的所有城市名称,请使用以下代码行:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("image").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> cities = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String cityName = ds.getKey();
cities.add(cityName);
}
ListView listView = (ListView) findViewById(R.id.list_view);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, cities);
listView.setAdapter(arrayAdapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);
ListView
中的结果将是:
Dubai
Hyderabad
Toronto
关于java - 检索当前用户的 child 数据: Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56732639/