Как получить данные, которые имеют определенный дочерний ключ, используя Pyrebase

Я использую Pyrebase для доступа к моей базе данных Firebase. Моя база данных в настоящее время структурирована так:

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

куда 12345 это идентификатор пользователя, а компания - это компания, к которой принадлежит пользователь. В настоящее время я пытаюсь получить всех пользователей, которые принадлежат Nike. Согласно документации Pyrebase, делать что-то вроде этого должно работать:

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

но я получаю ошибку "error" : "orderBy must be a valid JSON encoded path", Кто-нибудь знает, почему это может иметь место?

2 ответа

Что-то не так с библиотекой Pyrebase. Вот ссылка на проблему.

Решение состоит в том, чтобы добавить эти строки кода в ваше приложение.

# Temporarily replace quote function
def noquote(s):
    return s
pyrebase.pyrebase.quote = noquote

Мне удалось решить эту проблему, так как я также использую rest API для подключения к моей базе данных Firebase в реальном времени. Я покажу, где ошибка, на примерах:

Когда я не оборачиваю значение (дочерний элемент, ключ и т. д.) и другие параметры запросов запятыми, модификация (которую я использую) дает мне ошибку/неверный запрос.

Вот URL-адрес ошибки/неверного запроса:

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

Смотрите, как значение, так и значение, в данном случае, usernameа также lifeofkevin, не обрамляются запятыми, вот так "username"а также "lifeofkevin", поэтому он должен возвращать правильный путь в кодировке JSON.

Чтобы работать, мне нужно обернуть мой и другие параметры запроса запятыми, чтобы Firebase возвращал данные, с которыми вы хотите работать.

Вот второй пример, правильный:

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

Теперь заметили, разница? Оба значения orderByа также startAtзаключены в запятые, так что теперь они будут возвращать данные, с которыми вы хотите работать.

Другие вопросы по тегам