使用 firebase 和 vue.js 读取数据

Reading data with firebase and vue.js

我不是很有经验,我想知道如何从 firebase 中提取数据,更新 vue.js 的状态元素。问题是我无法提取专用于 firebase "snapshot" 的融合数据。 我将所有代码和所有错误留给您。

Vue.js代码:

<template>
  <div id="app">

      <div>
        <h1>ON/OFF led</h1>
        <h2>Status: {{ device.status() }}</h2>
      </div>


  </div>
</template>

<script>
import Vue from 'vue'

import { deviceStatusRef } from './firebase';

var pinReport;


export default {
  data () {
    return {
      name: '',
      device: {
        nome: 'led',
        status: function(){
              deviceStatusRef.on("value", function(snapshot) {
                pinReport = snapshot.val();
                console.log("[1] - pinReport value --> " + pinReport);
              });
              console.log("[2] - pinReport VALUE --> " + pinReport);
              return pinReport;
            }
      }
    }
  },

}
</script>

<style>

</style>

Chrome 上的错误:

这是预期的行为。数据从 Firebase 异步加载。当您的 [2] 日志语句运行时,数据尚未加载并且 pinReport 未定义。

这意味着所有需要数据的代码都必须在回调中,例如您的 [1] 日志语句。这也意味着您不能 return 从函数中获取数据库中的值,因为 return 在数据加载之前运行。