为了账号安全,请及时绑定邮箱和手机立即绑定

如何遍历由firebase随机生成的不同键值

如何遍历由firebase随机生成的不同键值

呼啦一阵风 2021-12-30 20:46:02
这是我想要遍历的数据结构,因为您可以看到用户有不同的用户,我可以轻松遍历这些用户,因为它们是在 firebase 身份验证期间生成的用户 ID,因此我可以访问它们,但现在我想遍历内部事件节点具有未知的键值,因为我使用 push 创建它们,并且 attenance 节点也是使用 push 创建的,并且应该具有多个值,我应该如何在它们之间遍历
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

为了解决这个问题,有两种方法。如果您使用名为 的模型类向数据库添加数据Event,要取回数据,请使用以下代码行:


String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();

DatabaseReference eventsRef = rootRef.child("users").child(uid).child("events");

ValueEventListener valueEventListener = new ValueEventListener() {

    @Override

    public void onDataChange(DataSnapshot dataSnapshot) {

        for(DataSnapshot ds : dataSnapshot.getChildren()) {

            Event event = ds.getValue(Event.class);

            Log.d(TAG, event.getName());

        }

    }


    @Override

    public void onCancelled(@NonNull DatabaseError databaseError) {

        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!

    }

};

eventsRef.addListenerForSingleValueEvent(valueEventListener);

第二种方法是使用 String 类,如以下代码行所示:


String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();

DatabaseReference eventsRef = rootRef.child("users").child(uid).child("events");

ValueEventListener valueEventListener = new ValueEventListener() {

    @Override

    public void onDataChange(DataSnapshot dataSnapshot) {

        for(DataSnapshot ds : dataSnapshot.getChildren()) {

            String name = ds.child("name").getValue(String.class);

            Log.d(TAG, name);

        }

    }


    @Override

    public void onCancelled(@NonNull DatabaseError databaseError) {

        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!

    }

};

eventsRef.addListenerForSingleValueEvent(valueEventListener);

在这两种情况下,logcat 中的输出将是:


Yoga Camp

Blood Donation Camp


查看完整回答
反对 回复 2021-12-30
  • 1 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信