Nano Hash - криптовалюты, майнинг, программирование

удалить старые данные в Firebase

Я знаю этот вопрос много здесь, но я не знаю об этом. Речь идет о приложении для чата.

Когда сообщение сохраняется в базе данных firebase. Со временем он будет становиться все больше и больше, я хочу удалить его. и когда я должен удалить это? Я просто хочу оставить только последние 10 данных. Это означает, что если я выхожу из приложения и снова захожу, появляется только последнее 10 предложений, и я знаю о функциях limitToFirst и limitToLast (но это не удаление).

Если я заплачу серверу Firebase, вы знаете, если данные базы данных большие, это будет дороже. но я просто хочу оставить хотя бы последние 10 предложений. когда они вернутся, они увидят последние 10 предложений и захотят удалить, кроме этого. Как мне это сделать?

Я видел ответ с датой, но я этого не хочу. Это единственный ответ? Если я должен сделать это, когда я их удалю? Когда я вызываю функцию удаления?

Я почти знаю, как это сделать, но когда? Если в приложении так много друзей, и я открываю экран чата, чтобы пообщаться с другом. В этот раз я должен удалить их с помощью функции удаления? Как сохранить это для оплаты сервера?

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


Ответы:


1

Вы можете добиться этого очень простым способом. Вы можете использовать метод getChildrenCount() на узле, в котором вы храните сообщения, чтобы увидеть точное количество сообщений. Если вы используете в качестве идентификатора случайный ключ, сгенерированный методом push(), удалить лишние сообщения очень просто. Поскольку записи по умолчанию упорядочены по дате, вы можете легко запросить свою базу данных, используя метод limitToLast(limit), а затем удалить такие сообщения:

yourRef.child("messages").child(messageId).removeValue();

Другой способ добиться этого — использовать Cloud Functions for Firebase.

Надеюсь, поможет.

19.06.2017
  • Большое спасибо, и когда я должен удалить их обычно?? Когда пользователи отправляют сообщение, в этот раз я должен использовать getChildrenCount() в своем собственном коде? Итак, если количество больше 10, то я должен удалить их? Я так запутался, время. Хотите знать, как обычно удаляют время в приложении чата... 20.06.2017
  • Я предлагаю вам использовать это один раз, каждый раз, когда пользователь запускает приложение. Не каждый раз, когда пользователи отправляют сообщение. Если пользователь отправляет за одну сессию более 10 сообщений, для отображения только десяти можно использовать метод limitToLast(10). Если вы будете удалять сообщение каждый раз, когда пользователь отправляет 11-е сообщение, это означает больше соединений, которые вам не нужны. Вам нужно удалить только один раз. 20.06.2017
  • Да, вы определенно мне помогли, спасибо. Вы имеете в виду, когда пользователи открывают приложение чата (активность чата, экран). В этот раз я должен удалить один раз? 20.06.2017
  • Когда пользователи открывают приложение чата, а не действие, в котором они общаются. Поток, открыть приложение -> удаленные сообщения -> открыть активность чата -> просмотреть отфильтрованные сообщения. 20.06.2017
  • О, я вижу, это из-за того, что так много раз удалялось сообщение, слишком много связей. Так это нехорошо, да? Которые удаляют сообщение каждый раз, когда пользователь отправляет сообщение, или удаляют сообщение каждый раз, когда пользователь открывает действие. Итак, вы предлагаете мне, чтобы когда пользователь пытался открыть мое приложение, а затем просто проверить один раз и удалить один раз, достаточно? 20.06.2017
  • Да, это правильно. Если сообщений много, значит и соединений много, а это совсем нехорошо. Да, проверьте только один раз и удалите нежелательные сообщения. 20.06.2017
  • Спасибо. вы так добры. Я очень ценю. 20.06.2017

  • 2

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

    19.06.2017
  • О, вы сказали мне о времени, так что спасибо. и я должен использовать их функцию, чтобы удалить их?. И есть ли способ удалить их автоматически? или я просто продолжаю проверять это с помощью getChildrenCount(). 20.06.2017
  • проверка наилучшего варианта для детей или планирование задания с использованием узла каждый период времени 20.06.2017
  • Есть ли способ сделать запланированное задание в Firebase, например MYSQL ?? о боже, я этого не знал. что это? 20.06.2017
  • используя функции nodejs и firebase 20.06.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..