代码之家  ›  专栏  ›  技术社区  ›  Ejaj Ahmad

如何从函数返回firebase数据?

  •  0
  • Ejaj Ahmad  · 技术社区  · 2 年前

    我正在尝试从firebase实时数据库获取数据。我知道如何获取数据,我可以记录它,但它不会返回。如果我在代码中的任何地方使用该函数将数据设置为变量,它总是返回undefined。

    
    function getData(target) {
      const reference = ref(db, `${target}/`);
      onValue(reference, (snapshot) => {
        if (snapshot.exists()) {
          console.log(snapshot.val());
          return snapshot.val();
        }
      });
    }
    

    这个 console.log(snapshot.val()); 作品

    我尝试了很多解决方案,但都无法按我希望的方式工作。 基本上,我想从firebase获取数据并使其发挥作用,这样我就可以在其他文件中使用它,只需传递一个数据库引用。所有东西都能工作,但它不会返回那个值。

    1 回复  |  直到 2 年前
        1
  •  0
  •   puf - Frank van Puffelen    2 年前

    听起来你只是想 read data once ,你可以用它 get() 这样地:

    function getData(target) {
      const reference = ref(db, `${target}/`);
      return get(reference).then((snapshot) => {
        if (snapshot.exists()) {
          return snapshot.val();
        }
        // TODO: what do you want to return when the snapshot does *not* exist?
      });
    }
    

    或者 async / await

    async function getData(target) {
      const reference = ref(db, `${target}/`);
      const snapshot = get(reference);
      if (snapshot.exists()) {
        return snapshot.val();
      }
      // TODO: what do you want to return when the snapshot does *not* exist?
    }