首页 > 解决方案 > 如何防止 Firebase 实时数据库、Web、JavaScript 的数据重复

问题描述

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

这是我的数据库结构

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

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

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

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

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

标签: javascriptfirebasewebfirebase-realtime-databasefirebase-security

解决方案


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

// 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
   }
});

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


推荐阅读