如何将indexOn添加到实时数据库模拟器

问题描述 投票:0回答:1

我正在尝试将 .indexOn 添加到 fireabase.json 以在实时数据库模拟器上使用排序和过滤。但无论我做什么,同样的错误,下面的错误代码,不断发生。

InvalidArgumentError:未定义索引,将路径“/test”添加“.indexOn”:“t”到规则中

我阅读了官方文档,但没有找到关于在 firebase.json 中在哪里编写规则的明确说明。

请教我我做错了什么。

我正在研究Python,下面是我的尝试,但没有成功。

我想要实现的操作

test = db.reference('test').order_by_child("t").get()

实时数据库结构

test->1->{t : timestamp, h : list of string}
      2->{t : timestamp, h : list of string}

规则之前的firebase.json结构

"emulators": {
"auth": {
  "port": 9099
},
"functions": {
  "port": 5001
},
"firestore": {
  "port": 8080
},
"hosting": {
  "port": 5000
},
"ui": {
  "enabled": true
},
"singleProjectMode": true,
"database": {
  "port": 9000
},
}

Attemp1:将规则放在数据库下

将规则放入数据库

"database": {
  "port": 9000,
  "rules" : {
    "test" : {".indexOn" : ["t"]}
  }
}

Attemp2:将规则放在模拟器下

将规则放在模拟器下

"emulators": {
"rules" : {
    "test" : {".indexOn" : ["t"]}
  },
}

Attemp3:将indexOn值从字符串列表更改为字符串

将indexOn的值更改为单个字符串而不是字符串列表

"emulators": {
"rules" : {
    "test" : {".indexOn" : "t"}
  },
}
python firebase firebase-realtime-database firebase-tools
1个回答
0
投票

经过额外的尝试,我能够通过以下问题的答案来解决该问题。 实时数据库模拟器忽略database.rules.json

  1. 创建了名为database.rules.json的实时数据库规则文件并写在下面

    { “规则”:{ “.read”:假, “.write”:假, “测试”:{“.indexOn”:[“t”]} } }

  2. 在 .firebaserc 文件上添加数据库设置

  3. 在 firebase.json 添加了数据库设置

© www.soinside.com 2019 - 2024. All rights reserved.