flutter上删除用户数据时如何删除firebase账号?

arknldoa  于 2022-12-24  发布在  Flutter
关注(0)|答案(4)|浏览(156)

在flutter认证中可以删除firebase帐号吗?2如果可以,怎么做?3我一直在找,但是没有找到方法。

Firestore.instance.collection("users").document(uid).delete().then((_){
   // delete account on authentication after user data on database is deleted            
});
1aaf6o9v

1aaf6o9v1#

使用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();
  }
}

使用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;
    }
  }
}

然后在flutter小部件树的clickable事件中使用以下代码来实现目标;

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

wlsrxk512#

删除用户编码:

FirebaseUser user = await FirebaseAuth.instance.currentUser();
user.delete();
1l5u6lss

1l5u6lss3#

要删除用户帐户,请在用户对象上调用delete()
有关详细信息,请参见FirebaseUser.delete()的参考文档。

8aqjt8rx

8aqjt8rx4#

User user = FirebaseAuth.instance.currentUser;
user.delete();

您可以从中删除用户

相关问题