java - 检索当前用户的 child 数据: Firebase

标签 java android firebase firebase-realtime-database

在我们的应用中,我们必须检索当前用户下的日记名称并将其显示在 ListView 中。

我们提到了许多与我们的问题类似的问题,但没有一个能派上用场。任何帮助,将不胜感激。提前致谢!

在图中所示的 Firebase 结构中:

  1. 一个用户可以拥有任意数量的日记(假设这张图片中的用户有 3 个) 日记,即海得拉巴、迪拜和多伦多

  2. 每一篇日记下面都有图像和经历 用户。

  3. 目的是仅获取正在考虑的用户的日记名称

在每本日记下,都有图像(我们能够将图像检索到 listview 中;在 fragment 中显示单独的图像)

预期输出是 - 一个新的 ListView,应填充日记名称 - 海得拉巴、金奈和类加罗尔 image

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/

相关文章:

javascript - Web 上的 Firebase 电话号码身份验证

java - 从 JSONArray 获取元素时保留双引号

java - JVM 1.5.0 版本不适合本产品。需要版本 : 1. 6 或更高版本

android - 是否可以根据类方法响应有条件地显示 XML 包含内容?

android - 在图像上缩放图像点击事件

android - Flutter:如何在整个应用程序中设置观察者

java - 如何使用 sphinx 从 JSGF 语法中检索标签?

java - Phonegap 中未显示 native android 菜单

android - 图片不适合 android react native

javascript - firebase3中如何将动态数据写入子节点?