因此,我正在创建一个 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/