Firebase关于flutter的文档不适用于删除用户



以下关于删除用户的文档不起作用:

try {
await FirebaseAuth.instance.currentUser.delete();
} catch on FirebaseAuthException (e) {
if (e.code == 'requires-recent-login') {
print('The user must reauthenticate before this operation can be executed.');
}
}

"删除()";是Flutter无法识别的函数。"FirebaseAuthException"也不能被Flutter识别

如何删除用户?我在哪里可以找到这些信息?

使用flutter时,如果要删除firebase帐户以及关联的firebase用户集合文档,则可以使用以下方法。(以firebase uid命名的用户集合中的文档)。

数据库类
class DatabaseService {
final String uid;
DatabaseService({this.uid});
final CollectionReference userCollection =
Firestore.instance.collection('users');
Future deleteuser() {
return userCollection.document(uid).delete();
}
}

使用Firebase 0.15.0或以上版本,否则,Firebase reauthenticateWithCredential()方法抛出类似{noSuchMethod:在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;
}
}
}

然后在颤振小部件树的可单击事件中使用以下代码来实现目标:

onTap: () async {  
await AuthService().deleteUser(email, password);
}

相关内容

最新更新