繁体   English   中英

结构不正确 firebase 获取调用无法循环返回的数据

[英]improperly structuring firebase get call unable to loop over returned data

我有一个 firebase 方法在 Object.map 内部执行:

// firebase 调用

  const getVisitors = (uid) => {
    let dbRef = ref(db, `organization/${org}/visitors/${uid}`);

    return get(dbRef, (snapshot) => {
      const visitor = snapshot.val();
      return visitor;
    })
  }

// 我在上面执行方法的地方:

    Object.keys(resultData.visitors[item]).map(async visitorEl => {
        const visitorObj = {};
        const individualVisitor = await getVisitors(visitorEl);
        console.log(individualVisitor);
        Object.keys(individualVisitor).forEach(el => {
          console.log(el);
        })
      })

我不正确地为异步调用构造了这个,但我不确定我哪里出错了。 第一个 console.log 记录了正确的数据,这让我相信它工作正常

Object {
  "address": "5722 some street st",
  "bDay": "",
  "city": "Bsome city",
  "email": "",
  "first": "Richard",
  "gender": "M",
  "language": "Spanish",
  "last": "Gongaza",
  "mStatus": false,
  "phone": "323555",
  "profilePic": "",
  "visitDate": "2022-09-11-PM",
  "visitNote": "",
  "zip": "",
}

但第二个 console.log 日志告诉我数据调用尚未解决。

  _node
    ref
    _index

我等待 getVisitors。 知道我做错了什么吗?

我最终通过分解 getVisitors 方法解决了这个问题,如下所示:

  const getVisitors = async (uid) => {
    let dbRef = ref(db, `organization/${org}/visitors/${uid}`);

    const snapshot = await get(dbRef);
    const value = snapshot.val();
    return value;
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM