我想从我的FireBase数据库中删除记录,基于记录的ID,但记录没有被删除。
我读过SO帖子,如How to delete/remove nodes on Firebase,remove-item-from-firebase和更多,但我无法解决我的问题。删除从Firebase的记录ID
数据库的结构是:
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
@adolfosrs - 我已添加完整的代码。我从Firebase的控制台运行它。 – TDG