Я создал чат только с 1 комнатой, личными сообщениями, модерацией и всем, и все это отлично работает! Пока я тестировал чат, я понял, что все сообщения, набранные в чате, были сохранены, и если бы у вас было много людей, использующих чат, это очень быстро заняло бы довольно много места в вашей Firebase.
Чтобы дать вам пример того, что я ищу, позвольте мне показать вам, как я обрабатываю личные сообщения:
Когда Джон отправляет личное сообщение Бобу, сообщение будет добавлено в список личных сообщений Джона и Боба, например:
/private/John <-- Message appended here
/private/Bob <-- Message appended here
Это пример того, как firebase будет выглядеть с 2 сообщениями в чате и двумя личными сообщениями:
{
"chat" : {
"516993ddeea4f" : {
"string" : "Some message here",
"time" : "Sat 13th - 18:20:29",
"username" : "test",
},
"516993e241d1c" : {
"string" : "another message here",
"time" : "Sat 13th - 18:20:34",
"username" : "Test2",
}
},
"private" : {
"test" : {
"516993f1dff57" : {
"string" : "Test PM reply!",
"time" : "Sat 13th - 18:20:49",
"username" : "Test2",
},
"516993eb4ec59" : {
"string" : "Test private message!",
"time" : "Sat 13th - 18:20:43",
"username" : "test",
}
},
"Test2" : {
"516993f26dbe4" : {
"string" : "Test PM reply!",
"time" : "Sat 13th - 18:20:50",
"username" : "Test2",
},
"516993eab8a55" : {
"string" : "Test private message!",
"time" : "Sat 13th - 18:20:42",
"username" : "test",
}
}
}
}
и то же самое происходит наоборот. Теперь, если Боб, где отключиться, список личных сообщений Боба удаляется, но Джон все еще может видеть его разговор с Бобом, потому что он получил копию всех сообщений в своем списке. Если Джон отключится после Боба, Firebase будет очищен, и их разговор больше не будет сохранен.
Есть ли способ добиться чего-то подобного в чате общего доступа? Нажатие сообщения всем пользователям, которые используют чат, не похоже на хорошее решение (?). Или можно каким-то образом заставить Firebase хранить только самые последние 100 сообщений?
Надеюсь, это имеет смысл!
С уважением
Ps. Большое спасибо команде Firebase за всю помощь до сих пор, я очень ценю это.