Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart FlatterFireStore如何通过手机号码检查客户是否存在_Dart_Flutter_Google Cloud Firestore - Fatal编程技术网

Dart FlatterFireStore如何通过手机号码检查客户是否存在

Dart FlatterFireStore如何通过手机号码检查客户是否存在,dart,flutter,google-cloud-firestore,Dart,Flutter,Google Cloud Firestore,我想检查用户是否存在于Firestore中。下面是我的代码 Future<bool> _checkCustomerExist() async { final QuerySnapshot result = await Firestore.instance .collection('customer') .where('mobile', isEqualTo: _customerFormData.mobile) .limit(1)

我想检查用户是否存在于Firestore中。下面是我的代码

Future<bool> _checkCustomerExist() async {
    final QuerySnapshot result = await Firestore.instance
        .collection('customer')
        .where('mobile', isEqualTo: _customerFormData.mobile)
        .limit(1)
        .getDocuments();
    final List<DocumentSnapshot> documents = result.documents;
    if (documents.length > 0) {
      return true;
    } else {
      return false;
    }
  }
Future\u checkCustomerExist()异步{
最终QuerySnapshot结果=等待Firestore.instance
.收款(“客户”)
.where('mobile',isEqualTo:_customerFormData.mobile)
.限额(1)
.getDocuments();
最终清单文件=结果文件;
如果(documents.length>0){
返回true;
}否则{
返回false;
}
}

我通过压缩
mobile
字段来检查它。所有这些都运行良好,但问题是当我在编辑之前编辑客户相同的方法调用时。所以每次我都要强制编辑手机号码。问题是,如何在此处设置条件,例如“documentID”与当前客户“documentID”不相等?

请尝试为我重新表述该问题?在编辑客户时为什么调用此方法?您已经创建了客户。另外,如果您有相同的表单用于添加和编辑客户,为什么不使用两种不同的方法来区分bool值
edit:true
用于表单编辑模式&
edit:false
用于新用户创建。这样可以避免调用相同的方法。@anmol.majhail-是的,我使用的是相同的页面(创建/编辑),并且我已经使用flag完成了编辑和创建模式。。但我们如何处理例如,如果用户“A”是由手机111添加的,那么同样的“B”是由手机222添加的。若我去编辑用户“A”并将名称“A”更改为“C”,那个么就会出现错误,比如手机号码已经存在。这里如果我删除以检查重复的用户条目,那么我们也可以在这里使用mobile 222将用户“A”更改为“C”。如果操作用于将名称
“A”更改为“C”
那么对数据库文档的操作是更新的-因此无需检查手机号码。在我看来,在编辑模式下编辑手机号码是不允许的,因为每个用户的唯一点都是移动的。你能试着为我重新表述这个问题吗,请?为什么在编辑客户时调用此方法?您已经创建了客户。另外,如果您有相同的表单用于添加和编辑客户,为什么不使用两种不同的方法来区分bool值
edit:true
用于表单编辑模式&
edit:false
用于新用户创建。这样可以避免调用相同的方法。@anmol.majhail-是的,我使用的是相同的页面(创建/编辑),并且我已经使用flag完成了编辑和创建模式。。但我们如何处理例如,如果用户“A”是由手机111添加的,那么同样的“B”是由手机222添加的。若我去编辑用户“A”并将名称“A”更改为“C”,那个么就会出现错误,比如手机号码已经存在。这里如果我删除以检查重复的用户条目,那么我们也可以在这里使用mobile 222将用户“A”更改为“C”。如果操作用于将名称
“A”更改为“C”
那么对数据库文档的操作是更新的-因此无需检查手机号码。在我看来,在编辑模式下,不应允许编辑手机号码,因为每个用户的唯一点都是移动的。