javascript - 在 firebase 内部调用 'this' once 函数

标签 javascript firebase firebase-realtime-database vue.js vue-component

因此,我正在创建一个 Vuejs 应用程序,并尝试在组件安装时获取 firebase 数据。那行得通,但是我尝试将该值写入 vuejs 数据属性。为此,我只会在 firebase 函数中调用 this.property = snapshot.val();(请参阅下面的代码),但这不起作用:this is undefined/p>

所以我的代码是:

export default {
  data() {
    return {
      imageList: "No images!"
    }
  },
  mounted() {
    if (!firebase.apps.length) {
      // Initialize Firebase
      var config = {
        ...
      };

      firebase.initializeApp(config);

      var database = firebase.database();
      var ref = database.ref("images").orderByChild("date");


    firebase.database().ref("images/").once('value').then(function(snapshot) {
        this.imageList= snapshot.val();
      });
    }
  }
}

我尝试在函数外部调用 this.imageList= snapshot.val(); 并使用一个变量来存储值,“this”不再是未定义的,但数据是“t 在那里,因为请求尚未完成。

所以基本上我想获取 snapshot.val();进入这个.imageList!

提前致谢。

最佳答案

您可以使用 es6 箭头函数语法来解决这个问题。

firebase.database().ref("images/").once('value').then((snapshot) => {
    this.imageList= snapshot.val();
});

或将 this 绑定(bind)到函数的上下文。

var that = this;

关于javascript - 在 firebase 内部调用 'this' once 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45224175/

相关文章:

javascript - 无法在 ng-repeat 中的复选框上设置 ng 模型

swift - 收听添加到 firestore 集合中的任何新文档

android - 使用 firebase 在 android 中推送通知获取 token

ios - Firebase 查询没有为 TableView 填充数组。我该如何解决这个问题?

swift - 如何获得所有真值

javascript - 如何强制reactJS重绘?

javascript - 如何判断是否安装了 node.js

火力地堡 : How to validate a User ID posted by another user.

javascript - 从多线程 C++ 插件回调 NodeJS Javascript 函数

ios - 在多个地方显示相同图像的正确 Firebase 设计是什么