use*_*957 51 javascript web firebase
我正在使用Firebase作为网络应用.它是用普通的Javascript编写的,不使用外部库.
我可以使用'.on("child_added")'"推送"和检索数据,但是'.remove()'不能按照它应该的方式工作.根据API,
"Firebase.remove() - 删除此Firebase位置的数据.子位置的任何数据也将被删除.删除的效果将立即显示."
但是,删除不会立即发生; 只有当整个脚本完成运行时.我需要删除然后立即使用清除的树.
示例代码:
ref = new Firebase("myfirebase.com") //works
ref.push({key:val}) //works
ref.on('child_added', function(snapshot){
//do stuff
}); //works
ref.remove()
//does not remove until the entire script/page is done
Run Code Online (Sandbox Code Playgroud)
这里有一个类似的帖子,但我没有使用Ember库,即使如此,它似乎是一个解决方法,应该像API解释它一样简单.
Fra*_*len 88
问题是您调用removeFirebase的根目录:
ref = new Firebase("myfirebase.com")
ref.remove();
Run Code Online (Sandbox Code Playgroud)
这将通过API删除整个Firebase.
您通常希望删除它下面的特定子节点,您可以使用以下方法:
ref.child(key).remove();
Run Code Online (Sandbox Code Playgroud)
Ula*_*Ula 14
我希望此代码可以帮助某人 - 它来自官方的Google Firebase文档:
var adaRef = firebase.database().ref('users/ada');
adaRef.remove()
.then(function() {
console.log("Remove succeeded.")
})
.catch(function(error) {
console.log("Remove failed: " + error.message)
});
Run Code Online (Sandbox Code Playgroud)
删除记录.
var db = firebase.database();
var ref = db.ref();
var survey=db.ref(path+'/'+path); //Eg path is company/employee
survey.child(key).remove(); //Eg key is employee id
Run Code Online (Sandbox Code Playgroud)
正如其他人已经注意到,调用.remove()是异步的.我们都应该意识到"即时"没有任何事情发生,即使它是在光速下.
"即时"的意思是下一行代码应该能够在调用之后执行.remove().对于异步操作,下一行可能是数据被删除后,也可能不是 - 它完全取决于机会和已经过去的时间量.
.remove()在我们知道操作已经完成(有或没有错误)之后,将一个参数作为回调函数来帮助处理这种情况以执行操作..push()需要两个参数,一个值和一个回调就像.remove().
以下是您修改的示例代码:
ref = new Firebase("myfirebase.com")
ref.push({key:val}, function(error){
//do stuff after push completed
});
// deletes all data pushed so far
ref.remove(function(error){
//do stuff after removal
});
Run Code Online (Sandbox Code Playgroud)
Firebase.remove() 就像大多数Firebase方法是异步的一样,因此您必须侦听事件以了解何时发生:
parent = ref.parent()
parent.on('child_removed', function (snapshot) {
// removed!
})
ref.remove()
Run Code Online (Sandbox Code Playgroud)
根据Firebase文档,即使您失去网络连接,它也应能正常工作。如果您想知道更改何时已与Firebase服务器实际同步,可以将回调函数传递给Firebase.remove方法:
ref.remove(function (error) {
if (!error) {
// removed!
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121944 次 |
| 最近记录: |