Как обойти случайный идентификатор в массиве, который Firebase дает в ответ? - PullRequest
0 голосов
/ 11 мая 2018

это мой console.log, но я могу получить доступ только к имени, а не к сообщениям, Я могу напечатать имя, но когда я пытаюсь напечатать сообщения, я получаю [объект] [объект] на странице, когда я печатаю данные, хочу удалить -LCE-36m4sdrPGFpusM6:

// выход

messages:
 -LCE-36m4sdrPGFpusM6:
 date:"2018/5/11"
 haveConsultant:true
 hour:"12:40"
 message:"hi"
name:"Teste chat 2"

Мой код для печати этого вывода с угловым исходящим из firebase, как я могу получить доступ к вложенному массиву сообщений ???

getUsersChat() {

    let clientsKeys: Array < any > ;

    let i = 0;
    console.log('obter chats ativados');
    this.mySegService.getChats().take(1).subscribe(res => {

      clientsKeys = Object.keys(res);
      this.totalNumberClients += clientsKeys.length;
      clientsKeys.forEach(clientKey => {
        if (i < ++i && res[clientKey]['messages'] !== undefined) {
          this.clientsShortList.push({
            name: res[clientKey]['name'],
            messages: res[clientKey]['messages']
          });
        }
        i += 1;
      });

    console.log(this.clientsShortList);
   });

  }

// мой HTML-код

<mat-list>
  <mat-list-item *ngFor="let chat of clientsShortList">
    <mat-icon mat-list-icon>account_circle</mat-icon>
    <h4 mat-line>{{chat.name}}</h4>
    <button mat-button>see more</button>
  </mat-list-item>
</mat-list>

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Сначала вы можете получить случайный идентификатор, используя Object.keys, например:

var key = Object.keys(res[clientKey]['messages'])[0];

, а затем получить объект сообщения, подобный этому:

console.log(res[clientKey]['messages'][key])
0 голосов
/ 11 мая 2018

Возможное простое решение этой проблемы - JSON.stringify объект сообщений перед попыткой console.log it.

В зависимости от браузера и формата объекта, простой вызов console.log(obj) не всегда поможет.

В вашем случае это будет изменение строки:

messages: res[clientKey]['messages']

вместо

messages: JSON.stringify(res[clientKey]['messages'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...