Firebase 和 Ionic 中的数据未更新
2017-02-15
299
我是 Ionic / Firebase 的新手,我尝试通过表单更新字段。一切正常,没有错误,所有控制台日志都显示所需内容,但数据库中的数据未更新。
这是我的控制器:
var database = firebase.database();
var userId = firebase.auth().currentUser.uid;
var nameInput = document.querySelector('#name');
var descriptionInput = document.querySelector('#description');
var saveButton = document.querySelector('#save');
saveButton.addEventListener("click", function() {
var name = nameInput.value;
var description = descriptionInput.value;
function writeUserData(name, description) {
firebase.database().ref('accounts/' + userId).set({
name: name,
description: description,
});
}
$state.go("tab.account");
});
有什么想法吗?或者也许更好的方法是在用户登录时通过表单简单地更新 firebase 的数据库?
1个回答
看来你还不知道这个函数的真正意义/用途,不知道什么时候使用它
嗯,这是因为你把它包装在
writeUserData
里面,而你没有执行/调用这个函数
同样,在这种情况下,
writeUserData
函数也不是必需的
所以删除它
var database = firebase.database();
var userId = firebase.auth().currentUser.uid;
var nameInput = document.querySelector('#name');
var descriptionInput = document.querySelector('#description');
var saveButton = document.querySelector('#save');
receiveNewData();
function receiveNewData() {
// check if there's new data added
firebase.database().ref('accounts/' + userId).on('child_added', function(msg) {
var data = msg.val();
// your new data
console.log(data);
$state.go("tab.account");
});
}
saveButton.addEventListener("click", function() {
var name = nameInput.value;
var description = descriptionInput.value;
firebase.database().ref('accounts/' + userId).set({
name: name,
description: description,
});
});
你只需要把
$state.go("tab.account");
转移到
receiveNewData
已编辑
为了能够捕捉到更改,只需在 'accounts/' + userId 内调用添加
child_added
事件监听器
function receiveNewData() {
firebase.database().ref('accounts/' + userId).on('child_added', function(msg) {
var data = msg.val();
// your new data
console.log(data);
$state.go("tab.account");
});
}
Beginner
2017-02-15