Я создаю простое приложение для чата с использованием Firebase и Firestore. Псевдо-схема, которую я имею в виду, выглядит следующим образом:
• threads: collection
|
+---- • friend_id: str
• last_messaged: timestamp
• messages: collection
|
+---- • sender_id: str
• text: str
• timestamp: timestamp
Теперь, скажем, мой друг с идентификатором 420
впервые отправляет мне сообщение. Я хотел бы сохранить эти данные, создав новую тему. Допустим, я делаю это с помощью следующей команды:
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
var db = admin.firestore();
var thread_id = '212';
var message_id = '3498213712';
db.collection('threads').add({
id: thread_id,
friend_id: '420',
last_messaged: 1557862539,
messages: [
{
id: message_id,
sender_id: '420',
text: 'Hello',
timestamp: 1557862539
}
]
})
Это правильный способ делать вещи? Будет ли автоматически создаваться коллекция с именем messages
, поскольку я отправляю объект JSON в это поле? Если нет, то как я могу сделать это правильно?
РЕДАКТИРОВАТЬ : Возможно, я не был достаточно ясен ранее. Я хочу, чтобы messages
был sub-collection
. Прямо сейчас это массив, согласно комментарию ниже.
EDIT2 : И threads
id, и messages
не случайны. Обновите код, чтобы отразить это.
НЕ ДУБЛИРОВАТЬ : Не дубликат вопроса, связанного в комментариях, потому что этот вопрос относится к Java и Android SDK, а этот вопрос к Javascript.