【发布时间】:2017-04-02 09:56:18
【问题描述】:
我正在尝试根据记录的 ID 从我的 FireBase 数据库中删除记录,但没有删除记录。
我已经阅读了诸如 How to delete/remove nodes on Firebase、remove-item-from-firebase 之类的 SO 帖子,但我无法解决我的问题。
数据库的结构是:
my_project
|
|-messages
|+Kg87....
|+Kg9a....
|+and so on...
我的代码:
const firebaseConfig = {
apiKey: "AIza....",
authDomain: ".firebaseapp.com",
databaseURL: "https://myProject.firebaseio.com",
storageBucket: "myproject.appspot.com",
messagingSenderId: ""
};
firebase.initializeApp(firebaseConfig);
exports.delete =
functions.database.ref('/messages/{pushId}/text')
.onWrite(event => {
var db = firebase.database();
var ref = db.ref("messages");
//console.log(ref.child("-Kg9a...").toJSON()); //- OK prints https://myproject.firebaseio.com/messages/Kg9a...
ref.child("-KgOASNRfF2PheKQ6Yfu").remove(); //Does nothing, returns promise - pending
});
据我了解,ref 是对 messages 节点的引用,因此 ref.child("Kg9a....") 是对所需子节点的引用。
- 我没有收到任何错误,但没有任何反应。记录保留在数据库中。
如果我将最后一行更改为
console.log(ref.child("Kg9a....").remove());,我会看到日志显示Promise { <pending> },但即使几个小时后也没有任何反应。这不是安全规则问题 - 我已将我的安全规则设置为 ".read": true, ".write": true 并且它仍然不会删除记录。
- 我的 firebase 版本是
3.5.0- 我已经安装了3.7.1,但是当我运行firebase -V时,我发现版本是3.5.0。
有什么建议吗?
【问题讨论】:
-
您能否添加您正在使用的实际代码?一个 jsFiddle 的例子会很棒。
-
@adolfosrs - 我已经添加了完整的代码。我正在从 firebase 的控制台运行它。
标签: javascript firebase firebase-realtime-database