Indexing Firebase表索引

Indexing Firebase表索引,indexing,firebase,firebase-realtime-database,Indexing,Firebase,Firebase Realtime Database,我正在用firebase构建一个应用程序,得到了一个查询,因此将它带到了这个论坛。数据按以下模式组织 Favourite --> Email Provider --> email Id - key (e.g. -K_EL-PS-1FJ-Dz2kqV7) -- attr1 -- attr2 -- attr3 -- attr4 现在,每个用

我正在用firebase构建一个应用程序,得到了一个查询,因此将它带到了这个论坛。数据按以下模式组织

Favourite
  --> Email Provider
        --> email Id
           - key (e.g. -K_EL-PS-1FJ-Dz2kqV7)
             -- attr1
             -- attr2
             -- attr3
             -- attr4 
现在,每个用户的电子邮件提供商和电子邮件ID都会更改。每个组合可以有多个记录(收藏夹)。现在我想获取电子邮件提供商和电子邮件ID组合的所有记录,其中attr2=“abc”。类似地,我希望在attr3=“cde”时获得相同组合的所有记录。我可以得到他的工作,但是得到警告(FialBase警告:使用一个未指定的索引)。考虑添加“.Noxon”。我能理解并感激这个警告。问题是,如何在这个场景中指定索引。我知道第一级元素(“宠儿”),而不是第二级和第三级元素。 谢谢你的帮助


当您需要向动态路径添加索引时,您可以使用所谓的通配符/美元变量指示该动态路径:

{
  "rules": {
    "Favourite": {
      "$providerId": {
        "$emailId": {
          ".indexOn": ["attr1", "attr2", "attr3", "attr4"]
        }
      }
    }
  }
}

这些$variables在上的文档中进行了说明。

当您需要向动态路径添加索引时,可以使用所谓的通配符/dollar变量指示该动态路径:

{
  "rules": {
    "Favourite": {
      "$providerId": {
        "$emailId": {
          ".indexOn": ["attr1", "attr2", "attr3", "attr4"]
        }
      }
    }
  }
}

这些$变量在上的文档中有解释。

谢谢Frank。我试试这个。还有一个问题,如果我可以问firebase是否支持And或or子句,例如attr1=“abcd”或attr2=“def”。谢谢您的帮助。您在查询中只能有一个订单和一个条件。有时,您可以组合值来创建逻辑AND,如我在这里描述的:谢谢Frank。我试试这个。还有一个问题,如果我可以问firebase是否支持And或or子句,例如attr1=“abcd”或attr2=“def”。谢谢您的帮助。您在查询中只能有一个订单和一个条件。有时,您可以组合值来创建逻辑AND,如我在此处所述: