首页 > 解决方案 > Firebase Realtime equalTo 不能使用像“+123”这样的字符串

问题描述

我有一个问题,找不到答案。这是我的示例 firebase 数据库,在“mobile”上有一个索引:

test
 A
  mobile : "+1234567"
 B
  mobile : "+2345678"

现在我想用 mobile = "+1234567" 查询所有节点

test.json?orderBy="mobile"&equalTo="+1234567"
returns : { }

test.json?orderBy="mobile"&startAt="+1234567"
returns :
{
  "A" : {
    "mobile" : "+1234567"
  },
  "B" : {
    "mobile" : "+2345678"
  }
}

test.json?orderBy="mobile"&startAt="+1234567"&endAt="+1234567"
returns : { }

怎么了 ?如果我删除所有“+”号(在数据库+请求中)它工作正常?!

标签: firebasefirebase-realtime-database

解决方案


您需要对字符进行URL 编码+,这意味着将其显示为%2B.

所以:

test.json?orderBy="mobile"&startAt="+1234567"&endAt="%2B1234567"

在这里查看我的工作示例:https ://stackoverflow.firebaseio.com/65924783.json?orderBy=%22mobile%22&equalTo=%22%2B1234567%22


推荐阅读