File

src/app/chats/chats.firebase.ts

Index

Properties
Methods

Constructor

constructor(db: AngularFireDatabase)
Parameters :
Name Type Optional
db AngularFireDatabase No

Methods

createChat
createChat(chat)
Parameters :
Name Optional
chat No
Returns : void
deleteAll
deleteAll()
Returns : void
deleteChat
deleteChat(key: string)
Parameters :
Name Type Optional
key string No
Returns : void
getChat
getChat(key: string)
Parameters :
Name Type Optional
key string No
Returns : Observable<any>
getChatsList
getChatsList()
Returns : any
updateChatMessage
updateChatMessage(key: string, value: any)
Parameters :
Name Type Optional
key string No
value any No
Returns : void

Properties

Private basePath
Type : string
Default value : 'chats'
chat
Type : Observable<any>
chatRef
Type : AngularFireObject<any>
chats
Type : Observable<any>
chatsRef
Type : AngularFireList<any>
import { Injectable } from '@angular/core';
import {
  AngularFireDatabase,
  AngularFireList,
  AngularFireObject
} from '@angular/fire/database';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

@Injectable()
export class ChatsFirebase {
  private basePath = 'chats';
  chatsRef: AngularFireList<any>;
  chatRef: AngularFireObject<any>;

  chats: Observable<any>;
  chat: Observable<any>;

  constructor(private db: AngularFireDatabase) {
    this.chatsRef = this.db.list(this.basePath);
  }

  getChatsList() {
    return this.chatsRef
      .snapshotChanges()
      .pipe(
        map(actions => actions.map(a => ({ $key: a.key, ...a.payload.val() })))
      );
  }

  getChat(key: string): Observable<any> {
    const path = `${this.basePath}/${key}`;
    this.chat = this.db.object(path).valueChanges();
    return this.chat;
  }

  createChat(chat) {
    this.chatsRef.push(chat);
  }

  updateChatMessage(key: string, value: any) {
    this.chatsRef.update(key, { messages: value.messages });
  }

  deleteChat(key: string) {
    this.chatsRef.remove(key);
  }

  deleteAll() {
    this.chatsRef.remove();
  }
}

result-matching ""

    No results matching ""