如何查找 Firebase 文档字段并删除文档

Posted

技术标签:

【中文标题】如何查找 Firebase 文档字段并删除文档【英文标题】:How to find Firebase document field and delete document 【发布时间】:2022-01-01 23:55:38 【问题描述】:

我有一个按钮可以让用户删除他们的帐户。当用户注册他们的电子邮件并将姓名保存到名为 users 的 Firestore 集合中时,我想在集合的文档中搜索 uid 字段等于当前用户 uid 的位置,然后删除该文档。删除帐户有效,但文件无效,我没有收到任何错误,我不确定我做错了什么...

CollectionReference users = FirebaseFirestore.instance.collection('users');

TextButton(
         onPressed: () async  
             try 
               await users
                     .where('uid', isEqualTo: _auth.currentUser!.uid).firestore.doc(users.doc().path).delete();
               await _auth.currentUser!.delete().then((value) => 
                Navigator.pushReplacement(context, MaterialPageRoute(
                      builder: (context) => const WelcomeScreen())));
                       on FirebaseAuthException catch (error) 
                        Fluttertoast.showToast( msg: error.message.toString(),
                        gravity: ToastGravity.TOP,
                        backgroundColor: Colors.red,
                        textColor: Colors.white);
                         on FirebaseException catch (error)  Fluttertoast.showToast(
                        msg: error.message.toString(),
                        gravity: ToastGravity.TOP,
                        backgroundColor: Colors.red,
                        textColor: Colors.white);
                       
                 ,
                      child: const Text( 'Delete', style: TextStyle(color: Colors.red),
  ))

【问题讨论】:

请告知您遇到的错误可能有助于更多地了解您的问题 由于某种原因,我在调试终端中没有收到错误 试试我的答案,如果它不起作用,请告诉我 【参考方案1】:

我刚刚在我的应用程序上工作时遇到了问题,并找到了类似的代码,所以这里是解决方案。只需将用户 ID 声明为变量即可,不需要像这样(可选)

final uid = _auth.currentUser!.uid; //optional

& 然后在您的代码中使用它:-

await users.doc(uid).delete();

而不是

await users
           .where('uid', isEqualTo: _auth.currentUser!.uid).firestore.doc(users.doc().path).delete();

Boom 现在它就像一个魅力! 希望这行得通!

【讨论】:

非常感谢,它有效

以上是关于如何查找 Firebase 文档字段并删除文档的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Firestore 文档中删除字段 (Flutter)

如何在特定字段 MongoDB 上查找 Distinct No of Document 并根据条件打印文档数?

如何从firebase中删除文档

如何在文档字段而不是集合字段中向Firebase添加数据?

如何使用云功能删除 Firestore 中的文档

如何通过 Firebase SDK 访问 Firestore 中的虚拟文档?