Vla*_*vić 4 javascript firebase firebase-authentication firebase-realtime-database
数据库结构如下所示
-LGw89Lx5CA9mOe1fSRQ {
uid: "FzobH6xDhHhtjbfqxlHR5nTobL62"
image: "https://pbs.twimg.com/profile_images/8950378298..."
location: "Lorem ipsum, lorem ipsum"
name: "Lorem ipsum"
provider: "twitter.com"
}
Run Code Online (Sandbox Code Playgroud)
如何以-LGw89Lx5CA9mOe1fSRQ编程方式删除所有内容,包括密钥?
我看了看,但是Firebase已经过时和过时了:removeUser()但需要删除该uid下存储的数据
我也研究了这个问题,但这要求用户不断登录(我将用户ID保存在中localStorage),null如果我写的话,它会在刷新后返回firebase.auth().currentUser。数据记录和用户帐户是通过社交网络提供商创建的,我可以在Firebase控制台的“ 身份验证”和“ 数据库”选项卡上看到数据。
我已经尝试过这些代码,但是它什么也没做。
// currentUser has a value of UID from Firebase
// The value is stored in localStorage
databaseChild.child(currentUser).remove()
.then(res => {
// res returns 'undefined'
console.log('Deleted', res);
})
.catch(err => console.error(err));
Run Code Online (Sandbox Code Playgroud)
最重要的是,我需要一键式同时从“ 身份验证”选项卡和“ 数据库”中删除用户(具有特定的UID)。
我知道有一个Firebase Admin SDK,但是我正在创建一个单页应用程序,并且没有任何后端代码。一切都在前端完成。
任何帮助都将受到赞赏。
在@jeremyw和@ peter-haddad的建议下,我完全可以得到我想要的东西。这是Firebase Cloud Functions上托管的代码
const functions = require('firebase-functions'),
admin = require('firebase-admin');
admin.initializeApp();
exports.deleteUser = functions.https.onRequest((request, response) => {
const data = JSON.parse(request.body),
user = data.uid;
// Delete user record from Authentication
admin.auth().deleteUser(user)
.then(() => {
console.log('User Authentication record deleted');
return;
})
.catch(() => console.error('Error while trying to delete the user', err));
// Delete user record from Real Time Database
admin.database().ref().child('people').orderByChild('uid').equalTo(user).once('value', snap => {
let userData = snap.val();
for (let key of Object.keys(userData)) {
admin.database().ref().child('people').child(key).remove();
}
});
response.send(200);
});
Run Code Online (Sandbox Code Playgroud)
另外,如果您遇到CORS错误,请将mode: 'no-cors'选项添加到fetch()函数中,它将可以正常使用。
| 归档时间: |
|
| 查看次数: |
2819 次 |
| 最近记录: |