0

我正在使用Pyrebase访问我的 Firebase 数据库。我的数据库目前的结构如下:

- users
    - 12345
        name: "Kevin"
        company: "Nike"

用户的id在哪里12345,公司是用户所属的公司。我目前正在尝试获取所有属于耐克的用户。根据 Pyrebase 文档,做这样的事情应该有效:

db.child("users").order_by_child("company").equal_to("Nike").get().val()

但我得到了错误"error" : "orderBy must be a valid JSON encoded path"。有谁知道为什么会这样?

4

2 回答 2

1

Pyrebase 库有问题。这是问题的链接

解决方案是在您的应用程序中添加这些代码行。

# Temporarily replace quote function
def noquote(s):
    return s
pyrebase.pyrebase.quote = noquote
于 2019-03-07T07:35:27.747 回答
0

我设法解决了这个问题,因为我也在使用 rest api 来连接我的 firebase 实时数据库。我将通过示例演示错误所在:

当我不orderBy使用逗号包装值(子项、键等)和其他查询参数时,改造(我正在使用)会给我错误/错误的请求。

这是错误/错误的请求网址:

https://yourfirebaseprojecturl.com/Users.json?orderBy=username&startAt=lifeofkevin

看,在这种情况下,orderBy值和startAt值,usernamelifeofkevin,都没有用逗号包裹,像这样"username""lifeofkevin",所以它将返回orderBy必须是一个有效的 JSON 编码路径。

为了工作,我需要orderBy用逗号包装我的和其他查询参数,以便 Firebase 返回您想要使用的数据。

这是第二个例子,正确的例子:

https://yourfirebaseprojecturl.com/Users.json?orderBy="username"&startAt="gang"

现在注意,区别?orderBy和的两个值startAt都用逗号包裹,因此现在它们将返回您要使用的数据。

于 2021-03-03T17:08:39.057 回答