【问题标题】:How do I prevent data duplication for Firebase Realtime Database, Web, JavaScript [duplicate]如何防止 Firebase 实时数据库、Web、JavaScript 的数据重复 [重复]
【发布时间】:2020-07-10 18:18:18
【问题描述】:

这是我的用户数据库结构。

如图所示,有2个相同的ID号注册成功。

如何防止“ICNumber”(身份证号)被多次注册?

这是我的实时数据库中的规则:

我尝试输入这段代码,但它似乎不起作用。有什么方法可以在我的 Javascript 中进行预防,或者在我的 Firebase 规则中使用任何正确的方法?

【问题讨论】:

标签: javascript firebase web firebase-realtime-database firebase-security


【解决方案1】:

在您的代码中,您可以执行以下操作:

// Get a reference to the database service
var database = firebase.database();
var dataRetrieved = database.ref('users').child(userId).orderByChild("ICNumber").equalTo("000326141809");
dataRetrieved.on('value', function(snapshot) {
  if(snapshot.exists()){
     // do the required
   }
});

您可以使用query 来检查您是否有一个等于000326141809ICNumber,然后使用方法exists() 来检查它是否已经在数据库中

【讨论】:

  • 非常感谢!您的代码有效,它检测该值是否已经在数据库中。但是,代码仍然运行我的 signup() 函数。你有什么解决方法吗?我尝试过:break、return 和 preventDefault 语句,但它们似乎不起作用
  • 只需在 else 中编写注册并使用一次而不是 on
  • Aight 人明白了!感谢您的帮助!
猜你喜欢
  • 2018-06-29
  • 1970-01-01
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-26
  • 1970-01-01
相关资源
最近更新 更多