Чтение данных с помощью firebase и vue.js - PullRequest
0 голосов
/ 15 декабря 2018

Я не очень опытный, и мне было интересно, как я могу извлечь данные из Firebase, обновив элемент состояния vue.js.Проблема в том, что я не могу извлечь данные слияния, выделенные для «моментального снимка» из базы.Я оставляю вам весь код и все ошибки ниже.

Код 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:

enter image description here

1 Ответ

0 голосов
/ 15 декабря 2018

Это ожидаемое поведение.Данные загружаются из Firebase асинхронно.К моменту выполнения оператора [2] log данные еще не были загружены, а pinReport не определен.

Это означает, что весь код, которому нужны данные, должен находиться внутри обратного вызова, как ваш [1] выписка из журнала.Это также означает, что вы не можете вернуть значение из базы данных из функции, так как return выполняется до загрузки данных.

...