在我们的应用中,我们必须检索当前用户下的日记的名称,并将其显示在ListView
中。
我们提到了许多与我们类似的问题,但是没有一个是方便的。任何帮助,将不胜感激。预先感谢!
在图像所示的Firebase结构中:
一个用户可以有任意数量的日记(例如,此图片中的用户有3个 日记,即海得拉巴,迪拜和多伦多
在每本日记中,都有一些图片以及他们的经历 用户。
目标是仅获取正在考虑的用户的日记名称
这些日记的每一个下都有图片(我们可以将这些图片检索到listview
中;在片段中显示一个单独的图片)
预期输出为-一个新的ListView
,其中应填入日记名称-海得拉巴,金奈和班加罗尔image
答案 0 :(得分:0)
根据您的最新评论,要在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