将Firebase数据对象转换为数组



我从Firebase实时数据库的task.getResult().getValue()数据。它看起来像:

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

如何将其转换为Array。所以我可以通过索引找到一个项目。
Like:

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

要将对象转换为数组,可以这样做:

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(...)访问它。

检索数据:

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

相关内容

  • 没有找到相关文章

最新更新