【问题标题】:Firebase Rules: How to validate duplicated with push id [duplicate]Firebase 规则:如何使用推送 id 验证重复 [重复]
【发布时间】:2020-06-20 21:59:56
【问题描述】:

我在我的项目中使用 Firebase Web SDK。目前我正在创建一个简单的邮件列表注册表单。我正在尝试检查是否没有重复的电子邮件被注册。目前,可以这样做,因为 firebase 在存储的数据的上一级创建了一个消息 ID,我不知道如何验证它。

这是我的代码:

db.ref("/signup_emails").push({
     name: d.name,
     email: d.email
}

每当这在数据库中创建一个条目时,它都会使用 message_id。像这样”

 signup_emails { 
     - M1itOVYTq-ySh_49rH3 {
          name: "John"
          email: "example@example.com"
     }
 }

如何验证电子邮件是否只注册过一次?

【问题讨论】:

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


【解决方案1】:

由于您现在有结构,因此无法使用 Firebase 安全规则。如果您想知道是否存在具有特定值的子节点,并且您不知道其完整路径,则必须执行查询才能找到它。但是,安全规则无法执行查询。你只能reference a node by its fully specified path

如果您想使用安全规则来查找一条数据,则该数据必须是包含该数据的节点的名称。因此,电子邮件地址或某种形式的电子邮件地址必须在路径中,而不是在值中。

或者,您可以将逻辑推送到可以为您执行检查的后端代码中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 2019-10-24
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多