Запрос с информацией об использовании в Firebase Pyrebase - PullRequest
0 голосов
/ 11 июля 2019

Добрый день.У меня есть следующая структура в firebase:

{
  "4d6a58279b404999a29535b956ad6965" : {
    "cpu_temp" : "52000",
    "gpu_temp" : "51000",
    "internet_ip" : "189.210.183.17",
    "ipaddr" : "192.168.1.101",
    "last_response" : "2019-07-11 14:27:26",
    "mac_add" : "50:3e:aa:af:49:bf",
    "terminal" : {
      "-LjX3T42e7T3tXgtbCXg" : {
        "comando" : "ls",
        "dt_comando" : "2019-02-07 09:06:45",
        "processado" : "0",
        "resposta" : "aW5zdGFsbC5zaAo=",
        "timeout" : "5"
      },
      "-LjX3Tjhkhkjhkkjh8yh" : {
        "comando" : "cat teste.txt",
        "dt_comando" : "2019-02-07 09:06:45",
        "processado" : "1",
        "resposta" : "aW5zdGFsbC5zaAo=",
        "timeout" : "5"
      }
    }
  }
}

Мне нужно сделать следующий запрос: перечислить только самую старую команду в структуре terminal, где значение processado равно 0

Я сделал следующее:

t = db.child("iots").child(iotId).child("terminal").order_by_child("processado").equal_to("0").get()

он возвращает следующую ошибку

    t = db.child("iots").child(iotId).child("terminal").order_by_child("processado").equal_to(0).get()
  File "/usr/local/lib/python3.7/dist-packages/pyrebase/pyrebase.py", line 264, in get
    raise_detailed_error(request_object)
  File "/usr/local/lib/python3.7/dist-packages/pyrebase/pyrebase.py", line 448, in raise_detailed_error
    raise HTTPError(e, request_object.text)
requests.exceptions.HTTPError: [Errno 400 Client Error: Bad Request for url: https://XXXX-admiot.firebaseio.com/iots/4d6a58279b404999a29535b956ad6965/terminal.json?orderBy=%2522processado%2522&equalTo=0] {
  "error" : "orderBy must be a valid JSON encoded path"
}

Может ли кто-нибудь помочь мне выполнить этот запрос с помощью PyreBase?Я использую Python 3.7


, теперь я исправил этот код:

def noquote(s):
    return s
pyrebase.pyrebase.quote = noquote

и новую ошибку в командной строке:

{
  "error" : "Index not defined, add \".indexOn\": \"processado\", for path \"/iots/4d6a58279b404999a29535b956ad6965/terminal\", to the rules"
}
...