繁体   English   中英

删除firebase中的用户账号

[英]Delete user account in firebase

我有一个 flutter 应用程序,用户有一个 email 和密码(帐户),我想让用户选择删除他们的帐户,如果他们愿意,问题是我的代码有时只删除身份验证,有时它删除信息和身份验证(就像我想要的那样)所以我不知道为什么有时有效有时无效

这是代码:

 onPressed: () async {
                        //delete user
                        current!.delete();
                        await FirebaseAuth.instance.signOut();
                        //delete user info in the database
                        var delete = await FirebaseFirestore.instance
                            .collection('users')
                            .doc(uid)
                            .delete();
                        //go to sign up log in page
                        await Navigator.pushNamed(context, '/');
                      },
                    )
                  ]).show();

这是此页面中的部分代码,谢谢。

我找到了解决办法!! 这是有效的代码

onPressed: () async {
                        bool step1 = true ;
                        bool step2 = false ;
                        bool step3 = false ;
                        bool step4 = false ;
                        while(true){

                          if(step1){
                            //delete user info in the database
                              var delete = await FirebaseFirestore.instance
                                  .collection('users')
                                  .doc(uid)
                                  .delete();
                              step1 = false;
                              step2 = true;
                          }

                          if(step2){
                            //delete user
                            current!.delete();
                            step2 = false ;
                            step3 = true;
                          }

                          if(step3){
                            await FirebaseAuth.instance.signOut();
                            step3 = false;
                            step4 = true ;

                          }

                          if(step4){
                            //go to sign up log in page
                            await Navigator.pushNamed(context, '/');
                            step4 = false ;
                          }

                          if(!step1 && !step2 && !step3 && !step4 ) {
                            break;
                          }

                        }





                      },

您没有提供任何调试细节,因此很难为您提供帮助。

但是我们可以看到您在调用delete()方法之前注销,因此如果删除用户配置文件只允许经过身份验证的用户(通过您的安全规则),您应该会遇到错误。

您应该尝试先调用delete()然后注销用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM