es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Arquitectura de conversaciones / mensajes de Hive en Flutter.

Me gustaría usar hive en mi aplicación Flutter para guardar localmente las conversaciones y los mensajes de las conversaciones del usuario actual.

Dicho esto, especialmente me gustaría recuperar todos los mensajes de una conversación específica.

¿Debería crear cajas con el conversation_id como nombre para almacenar mensajes? Si estoy en lo correcto, esto crearía 1 archivo por caja, ¿por lo que ¿Es correcto tener posiblemente cientos de archivos para esto? ¿Es razonable?

¿Cuál sería la mejor manera en esta situación?

Hasta ahora solo tengo dos cajas Mensajes y Conversaciones pero como no podemos “consultar”, si quiero cargar mensajes para una conversación específica, necesito cargar TODOS los mensajes de TODAS las conversaciones y luego filtrar en dart, lo que eventualmente puede llevar a problemas de falla por Out Of Memory.

Lo he probado con 100k mensajes para obtener el OOM, pero lo estoy viendo a largo plazo, por supuesto, ya que un usuario no tendrá 100k mensajes antes de un muy largo tiempo, pero de todos modos mejoraría el rendimiento.

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    En tu situación, lo mejor sería crear una caja con el nombre de “conversation_id” y almacenar todos los mensajes de esa conversación en esa caja específica.

    Crear una caja separada para cada conversación puede no ser ideal, como mencionaste, ya que crearía múltiples archivos y podría generar problemas de rendimiento a largo plazo.

    Almacenar todos los mensajes en la caja “Messages” y filtrar en Dart también puede generar problemas de rendimiento, como mencionaste.

    Al crear una caja para cada conversación, puedes recuperar fácilmente todos los mensajes para esa conversación en particular sin tener que filtrar a través de todos los mensajes, ya que cada caja solo contendrá mensajes relacionados con esa conversación.

    En conclusión, crear una caja separada para cada conversación sería la mejor manera de guardar y recuperar mensajes para una conversación específica en tu aplicación Flutter usando Hive.

Comments are closed.