首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时数据库REST API约束索引字段必须为JSON原语

实时数据库REST API约束索引字段必须为JSON原语
EN

Stack Overflow用户
提问于 2020-12-08 04:44:20
回答 2查看 155关注 0票数 0

我正在尝试使用google的rest API对google的实时数据库进行查询。"waiters“路径的数据如下所示:

代码语言:javascript
复制
{
     "-Kb2dYPV0yUXpD_1moc9": {
     "id": "Ky7gTz0BFyRudih0DhSAe3lwci13",
     "role": "normal"  
     },  

     "-Kb2etFm1xHd8sSsESeK": {
     "id": "VRBNr5OnMQaDoLpkKppapyDW8JZ2",
     "role": "admin"
     },
 }

在客户端,我知道id,我想要得到的是角色(即“管理员”或其他什么),但我不知道自动生成的位置id ("-Kb2etFm1xHd8sSsESeK")。有人知道如何继续吗?

我试过了:

代码语言:javascript
复制
static Future<RoleType> fetchRole(String userId, String token) async {
try {
  var url =
      "https://xxx.firebaseio.com/waiters.json?orderBy=\"id\"&equalTo=\"" +
          "$userId\"" +
          "?auth=" +
          token;
  final response = await http.get(url);
  final extractedData = json.decode(response.body);
  
  if (extractedData == null) return null;
  return RoleType(extractedData['role']);
} catch (error) {
  print("[fetchRole]:: " + error.toString());
  throw error;
}

}

不带令牌的URL提供:

代码语言:javascript
复制
https://xxx.firebaseio.com/waiters.json? 
orderBy="id"&equalTo="VRBNr5OnMQaDoLpkKppapyDW8JZ2"?auth=token

但我得到了这个错误:{错误:约束索引字段必须是JSON原语}

当我按如下方式更新规则时,我仍然收到此错误:

代码语言:javascript
复制
{
"rules": {
    ".read": "auth != null",  // 2020-11-9
    ".write": "auth != null",  // 2020-11-9
    "waiters": {
          ".indexOn": ["id"]
    }
  }
}

提前感谢您的帮助!

EN

回答 2

Stack Overflow用户

发布于 2020-12-08 17:36:59

出于某种原因,它现在起作用了。我不知道为什么。CS的奥秘。

票数 0
EN

Stack Overflow用户

发布于 2021-01-20 17:58:28

当我用angular玩离子游戏时,Hi也得到了同样的错误。

原来我的一个字符不是英文字符,我输入的是"“而不是”“。

希望这对路过的人有所帮助;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65189083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档