使用唯一ID时,在插入之前检查firebase数据库是否存在数据

使用唯一ID时,在插入之前检查firebase数据库是否存在数据,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,如何在添加数据之前搜索/检查firebase realtime数据库中的数据,何时使用唯一ID(如此处的屏幕截图)插入数据: (截图如下图所示) +使用者 --LMXmJKkb8khQa08zRtD -----姓名:“约翰” -----现状:1 --LMXmRscUZPvp00oVv5s -----姓名:“彼得” -----现状:1 注意:应用程序不知道或没有唯一ID的副本,因此我无法直接访问它 在将“名称”添加/插入数据库之前,我想检查它是否唯一 这是我至今所做的代码(注意这是C++,你可以

如何在添加数据之前搜索/检查firebase realtime数据库中的数据,何时使用唯一ID(如此处的屏幕截图)插入数据:

(截图如下图所示)

+使用者

--LMXmJKkb8khQa08zRtD

-----姓名:“约翰”

-----现状:1

--LMXmRscUZPvp00oVv5s

-----姓名:“彼得”

-----现状:1

注意:应用程序不知道或没有唯一ID的副本,因此我无法直接访问它

在将“名称”添加/插入数据库之前,我想检查它是否唯一

这是我至今所做的代码(注意这是C++,你可以用任何语言来发布你的答案)

到目前为止,我得到一个错误:

错误:SampleValueListener已取消:10:未定义索引,请将“.indexOn”:“name”,用于路径“/用户”,添加到规则中

因此,我需要以下方面的帮助:

  • 那么,当我无法直接访问时,如何设置索引?如何访问名称,因为它位于唯一ID标识符下

  • 我这样做对吗?(根据上面的代码),如何在添加值之前检查“名称”是否存在


  • 将以下内容添加到firebase规则中是否解决了此问题

    "rules": {
        "users": {
            ".indexOn": "name"
         }
     }
    

    有关定义索引的信息,请参见和。要检查唯一性,请检查需要在
    /users
    上定义的索引,这样您就不应该在这些规则中使用
    $dynamicid
    。我猜错误信息甚至会这么说。谢谢你的澄清!
    "rules": {
        "users": {
            ".indexOn": "name"
         }
     }