【问题标题】:Firebase get Index of child value programmatically in AndroidFirebase在Android中以编程方式获取子值索引
【发布时间】:2015-02-28 00:36:16
【问题描述】:

有没有办法在 Android 中获取 Firebase 的孩子的索引?不幸的是,我没有 10 名声望,所以我会在这里发布我的照片:http://gyazo.com/70d095cfac4fa92ea344e137fa44ef6d

我想要以某种方式获取某个子项中的值的数量以使用索引循环:

//For loop/Iterator to get value to store in an array
FireBase.child("Europe").child("Albania").child("answers).child(i).getValue();

【问题讨论】:

  • Firebase 有序集合未按您通常的顺序索引编制索引。有关解释,请参阅此博客文章:firebase.com/blog/… 您可以使用其 key() 方法获取节点的名称/ID。
  • 您好,感谢您的链接,在标题为“Java 中的数组”的链接中。是否可以使用消息 List hasNext() 函数中的迭代器来添加对象的数量以知道有多少?

标签: android firebase


【解决方案1】:

我自己找到了我想要的答案。

private int i = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Firebase.setAndroidContext(this);
        Firebase myFirebaseRef = new Firebase("https://<your_firebase>/");
        myFirebaseRef.child("Europe").child("Albania").child("answers").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Iterator<DataSnapshot> iterator = dataSnapshot.getChildren().iterator();
                int length = (int) dataSnapshot.getChildrenCount();
                String[] sampleString = new String[length];
                while(i < length) {
                    sampleString[i] = iterator.next().getValue().toString();
                    Log.d(Integer.toString(i), sampleString[i]);
                    i++;
                }
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {

            }
        });
    }

“i”是您开始的索引,在本例中为 0。

DataSnapshot.getChildren().iterator();

返回一个

Iterator<DataSnapshot>

然后我创建了 endIndex,它是长度,并通过一个 while 循环循环它。然后我创建了一个字符串数组并添加了孩子的所有值

iterator.next().getValue().toString();

因为我的对象是字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多