Ash*_*tav 5 firebase firebase-authentication flutter
是否可以在flutter的身份验证中删除firebase帐户?如果是,怎么做?我一直在寻找,但没有找到方法。
Firestore.instance.collection("users").document(uid).delete().then((_){
// delete account on authentication after user data on database is deleted
});
Run Code Online (Sandbox Code Playgroud)
Ran*_*age 10
使用flutter,如果要删除firebase 帐户以及关联的firestore 用户集合文档,以下方法可以正常工作。(由 firebase uid 命名的用户集合中的文档)。
数据库类
class DatabaseService {
final String uid;
DatabaseService({this.uid});
final CollectionReference userCollection =
Firestore.instance.collection('users');
Future deleteuser() {
return userCollection.document(uid).delete();
}
}
Run Code Online (Sandbox Code Playgroud)
否则,请使用 Firebase 0.15.0 或更高版本,Firebase reauthenticateWithCredential() 方法会抛出类似 { noSuchMethod: was called on null } 的错误。
认证等级
class AuthService {
final FirebaseAuth _auth = FirebaseAuth.instance;
Future deleteUser(String email, String password) async {
try {
FirebaseUser user = await _auth.currentUser();
AuthCredential credentials =
EmailAuthProvider.getCredential(email: email, password: password);
print(user);
AuthResult result = await user.reauthenticateWithCredential(credentials);
await DatabaseService(uid: result.user.uid).deleteuser(); // called from database class
await result.user.delete();
return true;
} catch (e) {
print(e.toString());
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在flutter小部件树的clickable事件中使用以下代码来实现目标;
onTap: () async {
await AuthService().deleteUser(email, password);
}
Run Code Online (Sandbox Code Playgroud)
要删除用户帐户,请调用delete()
用户对象。
有关这方面的更多信息,请参阅 的参考文档FirebaseUser.delete()
。
小智 6
删除用户代码:
FirebaseUser user = await FirebaseAuth.instance.currentUser();
user.delete();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8818 次 |
最近记录: |