首页 > 解决方案 > Firebase Firestore 数据库上的 Dart/Flutter 验证/验证

问题描述

我正在尝试对 Firebase Firestore 数据库进行 Dart/Flutter 验证/验证,以便不在数据库中两次保存相同的序列号字符串,但我做错了。

代码

   DocumentSnapshot snapshot = Firestore.instance.collection("lockers").document() as DocumentSnapshot;
   if (snapshot.data["numero_serie"]  == "$_numeroSerie"){
      print("QR Code ja cadastrado");
    } else {
      await Firestore.instance
          .collection("lockers")
          .document()
          .setData({"numero_serie": _numeroSerie});
    }
  }

Firebase 火库 火力基地

标签: firebaseflutterdartgoogle-cloud-firestore

解决方案


更简单的方法是:

final QuerySnapshot result = await Future.value(Firestore.instance
    .collection("lockers")
    .where("numero_serie", isEqualTo: "$_numeroSerie")
    .limit(1)
    .getDocuments());

final List<DocumentSnapshot> documents = result.documents;
if (documents.length == 1) {
  print("QR Code ja cadastrado");
} else {
  await Firestore.instance
       .collection("lockers")
       .document()
       .setData({"numero_serie": _numeroSerie});
}

推荐阅读