如何删除/删除Firebase上的节点
How to delete/remove nodes on Firebase
我正在将Firebase用于web应用程序。它是用简单的Javascript编写的,不使用任何外部库。
我可以使用".on("child_aded")"来"推送"和检索数据,但".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
这里有一个类似的帖子,但我没有使用Ember库,尽管如此,它似乎是一个解决方法,应该像API解释的那样简单
问题是您在Firebase:的根上调用remove
ref = new Firebase("myfirebase.com")
ref.remove();
这将通过API删除整个Firebase。
不过,您通常需要删除其下的特定子节点,这需要使用
ref.child(key).remove();
我希望这段代码能帮助到别人——它来自谷歌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)
});
Firebase.remove()
可能与大多数Firebase方法一样是异步的,因此您必须侦听事件才能知道什么时候发生了什么:
parent = ref.parent()
parent.on('child_removed', function (snapshot) {
// removed!
})
ref.remove()
根据Firebase的文档,即使你失去了网络连接,它也应该能工作。如果您想知道更改何时实际与Firebase服务器同步,可以向Firebase.remove
方法传递回调函数:
ref.remove(function (error) {
if (!error) {
// removed!
}
}
删除记录。
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
正如其他人所指出的,对.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
});
如果您正在使用axios并尝试通过服务调用。
URL: https://react-16-demo.firebaseio.com/
Schema Name: todos
Key: -Lhu8a0uoSRixdmECYPE
axios.delete(`https://react-16-demo.firebaseio.com/todos/-Lhu8a0uoSRixdmECYPE.json`). then();
可以提供帮助。
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 如何从Firebase聊天中删除项目
- Firebase对ref调用.remove()正在删除所有父级
- Firebase 删除查询结果
- 无法访问要传递给删除函数的正确 Firebase 项键
- 删除表中的行 - AngularJS 和 FireBase
- 从Firebase中删除项目
- 使用React删除Firebase中的项,重新渲染会返回未定义的项
- 如何删除/删除Firebase上的节点
- 传入密钥会导致我的 Firebase 网址中出现额外的字符,如何删除它们
- 如何设置安全规则以防止删除firebase中的数据
- Firebase根据子值删除节点
- Firebase Web update()删除所有其他子节点
- Firebase -使用limitToLast删除时防止child_added
- Firebase事件保证子添加子删除
- Firebase push -删除唯一对象并插入新对象(基本上覆盖内容)
- 从Firebase数据库中删除ref的子对象
- Firebase Google OAuth - Auth uid不同于先前已删除的电子邮件的回调返回的uid
- 我的代码不工作.如何删除Firebase列表中的元素?
- 如何删除firebase中的值