首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检索当前用户的子数据: Firebase

检索当前用户的子数据: Firebase
EN

Stack Overflow用户
提问于 2019-06-24 08:29:21
回答 1查看 52关注 0票数 0

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

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

在图像中显示的Firebase结构中:

  1. 用户可以有任意数量的日记(假设这张图片中的用户有3本日记,即海得拉巴、迪拜和多伦多)。
  2. 在每本日记中,都有用户的图片和体验。
  3. 目的是只考虑用户的日记名。

在这些日记中,都有图像(我们可以将图像检索到一个listview中,一个单独的图像显示在一个片段中)

预期的输出是-一个新的ListView,应该填充日记名-海得拉巴,钦奈和班加罗尔图像

图像

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 09:46:12

根据您最后的评论,要获取ListView中的所有城市名称,请使用以下代码行:

代码语言:javascript
复制
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中的结果将是:

代码语言:javascript
复制
Dubai
Hyderabad
Toronto
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56732639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档