【问题标题】:how to get id of object from firebase database in reactjsreactjs中如何从firebase数据库中获取对象的id
【发布时间】:2020-07-21 13:22:44
【问题描述】:

如何在 reactjs 中从 firebase 数据库中获取对象的 id 我有一个从 react-redux 中的 firebase 数据库获取的列表数组,我想获取数组的每个对象的 id,我该如何获取?

【问题讨论】:

    标签: arrays reactjs firebase-realtime-database react-redux javascript-objects


    【解决方案1】:

    获取快照,并将其作为 Map 进行迭代,例如 Object.keys(foo).forEach。 这是一段虚拟代码:

    `

          const rootRef = firebase.database().ref();
          const fooRef = rootRef.child("foo");
          fooRef.on("value", snap => {
            const foo = snap.val();
            if (foo !== null) {
              Object.keys(foo).forEach(key => {
                // The ID is the key
                console.log(key);
                // The Object is foo[key]
                console.log(foo[key]);
              });
            }
          });
    

    `

    注意 Firebase 中的数组:如果 ID 是从 '0' 开始的连续数字,它们会被转换为数组。如果您删除数组中间的一个项目,它不会相应地更改 ID。更好地使用地图,它更可预测。

    【讨论】:

    • 我们可以从来自 firebase 的对象数组中获取 ID 吗?
    • 同样的方法,除非你使用arrayName.forEach(/* Do your stuff here */) 但是再一次注意Firebase中的数组,因为它们是作为对象存储的。更多信息在这里:firebase.googleblog.com/2014/04/…
    【解决方案2】:

    你可以试试这样的:

    export const getAllRooms = () => {
      return roomCollection.get().then(function (querySnapshot) {
        const rooms = [];
        querySnapshot.forEach(function (doc) {
          const room = doc.data();
          room.id = doc.id;
          rooms.push(room);
        });
        return rooms;
      });
    };
    `
    

    【讨论】:

      猜你喜欢
      • 2018-10-03
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-23
      • 2018-06-11
      • 2019-09-17
      • 1970-01-01
      相关资源
      最近更新 更多