firebase - 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});
}
}
解决方案
更简单的方法是:
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});
}
推荐阅读
- javascript - 如何使用 mongoose 和 node.js 将 mongodb 时间戳转换为 dd-mm-yyyy 格式?
- r - 如何在 R 中使用 grid.show.viewport() 函数?
- javascript - 使用 firebase auth 注册用户会引发错误,但仍能正确注册
- python - Pandas groupby 计数和填充无计数为 0
- mysql - 插入新元素时如何向下推 ID
- apache-kafka - Kafka docker 撰写外部连接
- android - 如何更快地从 Firebase 中检索数据
- javascript - Pause functions on page history forward backward
- python-3.x - 为什么 Python 不为顶级脚本文件保存字节码文件?
- c++ - How does everything work (including operator '->'), when sizeof's size and the actual object size don't match?