【问题标题】:How to validate any item entry which is already exist in firebase database in angular 6如何验证 Angular 6 中 Firebase 数据库中已存在的任何项目条目
【发布时间】:2019-01-24 07:30:28
【问题描述】:

![我在 firebase 数据库中有一个名为 unit 的表,在该 unit 下我有一些托儿服务,您可以在下面的图片中看到。现在我的问题是如果用户输入一些单位名称,例如:Kg,Ltr 等在 firebase 数据库中。如果他/她只输入一个唯一的单位名称,那么他们将能够提交它。但是我为此编写了一些代码,当我在验证中添加此验证以及运行项目并想要键入唯一的单元名称但未出现提交按钮时,它无法正常工作。 请帮我解决一下这个。 firebase 表图片:]

这是我为此编码的 .ts 文件

这是我运行项目并输入唯一单元名称时的图片

我们这次已经在这里导入了。 enter image description here

提前致谢

【问题讨论】:

  • 请对答案发表评论或提供反馈,如果对您有用,请接受,以便其他人受益
  • 请我解决这个问题..

标签: firebase firebase-realtime-database angular6


【解决方案1】:

我会尝试实现一个数据库规则,像这样

"unit": {
   "$unit_id": 
   {
      ".validate": "$unit_id.child('unitname').child(newData.val()).exists() != true",
      }
   }

【讨论】:

  • 你熟悉firebase数据库吗?
  • 我这样编码:export class CustomValidator{ static unitname (afs:AngularFirestore){ return (control:AbstractControl) =>{ const unitname =control.value.toLowerCase(); return afs.collection('unit', ref => ref.where('unitname', '==', unitname )) .valueChanges().pipe( debounceTime(5000), take(10), map(arr => arr.length ? {unitnameAvailable: false}:null ), ) } } }
猜你喜欢
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 2017-05-24
相关资源
最近更新 更多