【问题标题】:Prevent duplicate entry firebase database [duplicate]防止重复进入firebase数据库[重复]
【发布时间】:2018-06-29 15:18:46
【问题描述】:

我一直在为 iOS 和 Android 平台制作移动应用程序,并希望防止这些应用程序产生重复条目。我不想在应用程序方面这样做,因为我必须在两个平台上都这样做。 然后我听说了 Firebase 数据库部分中的规则,我尝试了其中的几个,但对我来说并不奏效。 请帮助我了解 Firebase 规则。

【问题讨论】:

  • 我认为您与Realtime database 合作?是吗 ?不是Cloud Firestore 我在Cloud Firestore 看到了一些例子有这个安全规则。但不确定。
  • 安全规则中没有办法使 values 唯一,因为它是一种天生不能很好扩展的操作。相反,您将希望使用“必须唯一的事物”作为数据库列表中的键。根据定义,列表中的键是唯一的。例如:如果您使用name 作为/Dealers 的键,则Anirudh 只能有一个。这个之前已经讨论过很多次了,所以我建议你尝试一下these
  • @HakanC 是的,我正在使用实时数据库。
  • @FrankvanPuffelen 我会通过这个看看,谢谢!

标签: firebase-realtime-database firebase-security


【解决方案1】:

如果你使用Cloud Firestore,你可能会阻止类似这条规则的双重记录,但老实说我没有测试它。我只是从 Firebase 文档中编写的:

service cloud.firestore {
  match /databases/{database}/documents {

    // Checks name is not the same as resource and request data
    match /Dealers/{dealer} {
      allow write: if request.resource.data.name != resource.data.name;
    }
  }
}

更多信息,请查看this

【讨论】:

  • 您给出的规则只是确保您不能写入已经存在的数据。这确实是最常见的方法。 Firebase 实时数据库的方法将完全相同:如果您希望某些内容独一无二,请将其设为 JSON 中的键。根据定义,它们是独一无二的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
  • 2016-09-28
相关资源
最近更新 更多