Как обойти случайный идентификатор в массиве, который Firebase дает в ответ?

1

это мой 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>
Теги:
angular
firebase
firebase-realtime-database

2 ответа

1
Лучший ответ

Вы можете сначала получить случайный идентификатор с помощью Object.keys следующим образом:

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

И затем получите объект сообщения следующим образом:

console.log(res[clientKey]['messages'][key])
1

Возможным простым решением этой проблемы будет JSON.stringify объект сообщений, прежде чем пытаться его console.log.

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

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

messages: res[clientKey]['messages']

вместо этого

messages: JSON.stringify(res[clientKey]['messages'])

Ещё вопросы

Сообщество Overcoder
Наверх
Меню