Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[FR] Complex database queries should support realtime updates

Aberta
#598 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
45/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
python
Domínio
databases

Direção de pesquisa

Comece na classe Query e inspecione o caminho existente do listener, incluindo _listen_with_session e create_listener_session. Compare como os parâmetros de consulta são passados para a REST API e, em seguida, verifique se listen() entrega atualizações em tempo real para order_by_child() e outras consultas complexas sem quebrar os listeners existentes.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

api: database type: feature request

Is your feature request related to a problem? Please describe.
There is currently no listen() function for complex queries. This means that you for example cannot listen for realtime updates on the result of order_by_child().

This feature is supported by the underlying REST API, and also in the pyrebase Python client library.

Describe the solution you'd like
A listen() function in the Query class.

Describe alternatives you've considered

  • Use pyrebase
  • Do sorting and filtering client-side

Additional context

Adding the following code into the Query class seems to be enough to implement this feature:

  def listen(self, callback):
       return self._listen_with_session(callback)

   def _listen_with_session(self, callback, session=None):
       url = self._client.base_url + self._pathurl
       if not session:
           session = self._client.create_listener_session()

       try:
           sse = _sseclient.SSEClient(url, session, params=self._querystr)
           return ListenerRegistration(callback, sse)
       except requests.exceptions.RequestException as error:
           raise _Client.handle_rtdb_error(error)
Linguagem predominante
Python
Estrelas
1.2k
Forks
359
Merge médio
3d 9h
PRs com merge (30d)
3

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de firebase/firebase-admin-python

Todas as issues de firebase/firebase-admin-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.