Интерфейс Typescript для Firebase UID - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть проект, использующий Angular 8 и Firebase Firestore, и я озадачен тем, как создать надлежащий интерфейс для объекта Firestore.

В проекте пользователи могут писать сообщения друг другу, следовательно в Firestore я создал коллекции следующим образом:

users/uid1/user1
users/uid2/user2
users/uid3/user3

conversations/cid1/uid1+uid2/messages/mid1
conversations/cid1/uid1+uid2/messages/mid2
conversations/cid1/uid1+uid2/messages/mid3
conversations/cid1/uid1+uid2/messages/mid4

conversations/cid2/uid1+uid3/messages/mid1
conversations/cid2/uid1+uid3/messages/mid2

Чтобы достичь отношения «многие ко многим» (один пользователь может иметь много сообщений, а одно сообщение может иметь много пользователей), документ в коллекции бесед должен выглядеть так:

let docData: IRelation = {
      [message.from.uid]: {
        [message.from.uid]: true,
        name: message.from.name,
        imageURL: message.from.imageURL
      },
      [message.to.uid]: {
        [message.to.uid]: true,
        uid: message.to.uid,
        name: message.to.name,
        imageURL: message.to.imageURL
      }
}

Интерфейс IRelation вызывает проблему. Возможно, я нахожусь на неверном пути кодирования ... но как мне создать интерфейс Typescript для удовлетворения вышеуказанных docData?

Я сделал решение доступным на stackblitz: https://stackblitz.com/edit/angular-nn7bye

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...