【问题标题】:Convert Firebase Data Object to Array将 Firebase 数据对象转换为数组
【发布时间】:2021-12-03 23:47:19
【问题描述】:

我通过 task.getResult().getValue() 从 Firebase 实时数据库中获取数据。它看起来像:

{
    jyIibta0UWaRF2={Name=Value1, Surname=Value2},
    Oy8r5SEYacKKM2={Name=Value3, Surname=Value4}
}

如何将其转换为数组。所以我可以通过它的索引找到一个项目。
喜欢:

data[1][1]; //Must return "Surname=Value4"

【问题讨论】:

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


    【解决方案1】:

    要将对象转换为数组,您可以执行以下操作:

    const obj = {
        jyIibta0UWaRF2: {Name: "Value1", Surname: "Value2"},
        Oy8r5SEYacKKM2: {Name: "Value3", Surname: "Value4"}
    }
    
    let data = [];
    Object.keys(obj).forEach((key) => {
      data.push(["Name="+obj[key].Name, "Surname="+obj[key].Surname]);
    });
    
    console.log(data[1][1]);

    但由于您提到这来自 Firebase 实时数据库,我建议从那里学习导航 DataSnapshot 类。给定 snapshot 与您显示的结构,您可以使用以下命令进行导航:

    for (DataSnapshot child: snapshot.getChildren()) {
        Log.d("Firebase", child.getKey()); // "jyIibta0UWaRF2", "Oy8r5SEYacKKM2"
        Log.d("Firebsae", child.child("Surname").getValue(String.class); // "Value2", "Value4"
    }
    

    这使用两种方法来导航DataSnapshot 中的数据:

    • 如果您不知道所需的密钥,可以使用getChildren() 遍历所有子项/属性。
    • 如果您知道所需的密钥/名称,可以通过child(...) 访问它。

    并检索数据:

    • 使用属性的数据类型调用getValue(...)(在本例中为String.class

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-16
      • 2015-09-05
      • 2022-06-24
      • 2021-05-03
      • 2018-12-04
      • 2021-06-16
      • 1970-01-01
      相关资源
      最近更新 更多