Firebase获取序列号的方法

问题描述 投票:0回答:1

如何自动获取这个值,而不需要分别写每一个。

我试了一下

FirebaseDatabase.getInstance().getReference().child("Orutmen").child("episodeNumber");

但它显示为空值。

这个可以,但我必须为每个字段写。

FirebaseDatabase.getInstance().getReference().child("Orutmen").child("1").child("episodeNumber");

以下是代码

m2Database = FirebaseDatabase.getInstance().getReference().child("Orutmen");

m2Database.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String value = snapshot.child("episodeNumber").getValue(String.class);
        Toast.makeText(EpisodeListModel.this, value, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException(); 
    }
}); 
java android firebase
1个回答
1
投票

你可以通过迭代 childrenDataSnapshot:

m2Database = FirebaseDatabase.getInstance().getReference().child("Orutmen");

 m2Database.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String value;
        for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
            value = snapshot.child("episodeNumber").getValue(String.class);
            Toast.makeText(EpisodeListModel.this, value, Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException(); 
    }
}); 

1
投票

我想出了一个办法

只是添加了一个字符串列表,从快照中收集值,然后通过点击项目的位置检索值>&gt。

     List<String> List = new ArrayList<>();

                                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                                    String  value = snapshot.getKey();
                                    List.add(value);

                                }
Toast.makeText(EpisodeListModel.this, List.get(position), Toast.LENGTH_SHORT).show();
© www.soinside.com 2019 - 2024. All rights reserved.