【问题标题】:Firebase - Add Children to Array List - javaFirebase - 将子级添加到数组列表 - java
【发布时间】:2019-08-09 18:44:38
【问题描述】:

我有一个公共汽车访问路线中的庄园列表,但是有一天庄园关闭并且管理员必须更改路线列表,我希望 RedLineRoutes 中的孩子可以更改,我想遍历节点并获取所有子节点并将它们插入一个数组,这可能吗

我的数据库

我的代码

  void mConditions()
    {
        Log.d(TAG,"STARTED mCONDITIONS");

            DatabaseReference RedLineRouteReference = FirebaseDatabase.getInstance().getReference().child("RedLineRoute");
            RedLineRouteReference.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


                        for (DataSnapshot child: dataSnapshot.getChildren()) {
                            String key = child.getKey();
                            String value = child.getValue().toString();
                            Log.i(TAG,key+"\n"+value);
                        }                 
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });

        }

这是输出

I/TimeTable: aMaison
    true
I/TimeTable: bMontRochelle
    true
    cHoldenManz
    true'
I/TimeTable: dCharmonix
    true
I/TimeTable: eDieuDonne
    true
I/TimeTable: fGrandeProvance
    true
    gRicketyBridge
    true
    aMaison
    true
I/TimeTable: bMontRochelle
    true
    cHoldenManz
    true'
    dCharmonix
    true
    eDieuDonne
    true
    fGrandeProvance
    true
I/TimeTable: gRicketyBridge
    true
    aMaison
    true
    bMontRochelle
    true
    cHoldenManz
    true'
    dCharmonix
    true
    eDieuDonne
    true
I/TimeTable: fGrandeProvance
    true
    gRicketyBridge
    true


如何将子元素迭代到我可以使用的数组中?

【问题讨论】:

  • 您正在迭代的对象 (DataSnapshot) 已经是一个数组,为什么需要将孩子保存到另一个数组中?主旨对我来说似乎不太清楚。
  • 我希望能够说 if(child[0].equals child[1]){ do something }

标签: java android arrays firebase firebase-realtime-database


【解决方案1】:

感谢这个question

,我找到了答案

但这里是代码,如果您想遍历 firebase 数据库中的子节点列表,并隔离节点的每个子节点。


            DatabaseReference RedLineRouteReference = FirebaseDatabase.getInstance().getReference().child("RedLineRoute");
            RedLineRouteReference.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

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

                    for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                        String data = snapshot.getKey();
                        youNameArray.add(data);
                    }

                    Log.v(TAG, "First data : " + youNameArray.get(0));
                    Log.v(TAG, "Second data : " + youNameArray.get(1));


                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });

这是输出

V/TimeTable: First data : aMaison
    Second data : bMontRochelle
V/TimeTable: First data : aMaison
    Second data : bMontRochelle

所以我能够访问每个孩子并隔离每个孩子,并用他们在数组中的位置来调用他们。

【讨论】:

    猜你喜欢
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2012-11-05
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多