Как создать Auto-ID внутри документа пожарного депо? - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь добиться этого для функции запроса дружбы в моей структуре данных для отправленных запросов, но я не могу: This is the structure of the sent_requests collection

По сути, я пытаюсь это сделатьотключено от базы данных реального времени в облачном хранилище: enter image description here Выше reqId1 и reqId2 автоматически генерируются идентификаторы. Это довольно легко осуществить в БД в реальном времени, так как я могу просто использовать push() method. Проблема заключается не в создании случайного числа, а в том, что я не могу создать документ с autoID внутри документа userId, в котором я буду хранить данные.

Я пробовал это:

sendRequest() {
    const uid = auth().currentUser.uid;
    firestore()
      .collection('Sent_Reqs')
      .doc(`${uid}`)
      .collection(`${this.autoId()}`)
      .add({
        targetId: this.userId,
        sentAt: new Date(),
      });
  }

Но вышесказанное не приносит никакой пользы, поскольку оно вкладывает данные двух уровней в документ (uid).

Пожалуйста, помогите мне

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 ноября 2019

Структура данных в Firestore всегда состоит из пар collection и затем document . Имена коллекций обычно являются фиксированными / жестко закодированными именами, в то время как имена документов обычно генерируются (или основаны на данных).

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

Например:

Sent_Requests
  (uid)
    Requests
      (request_id)

Здесь Sent_Requests и Requestsимена коллекций, (uid) и (request_id) имена документов. Коллекция Requests не очень полезна, но необходима для удовлетворения требований Firebase.

0 голосов
/ 01 ноября 2019

Это часть данных вашего документа. Я не могу помочь вам в этом.

Если вы структурируете базу данных таким способом, просто чтобы получить запрос, отправленный конкретным пользователем easiy. Я хотел бы предложить другую структуру следующим образом:

Sent_Request (collection)
|-AutoID1 (document, this ID you can generate with help of firebase)
  |- targetUser : value
  |- sentAt : value
  |- requestSentBy : userId
|-AutoID2 (document, this ID you can generate with help of firebase)
  |- targetUser : value
  |- sentAt : value
  |- requestSentBy : userId    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...