Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Component, ViewChild } from '@angular/core';
- import { NavController, NavParams, Content } from 'ionic-angular';
- import * as firebase from 'Firebase';
- import { ChatPage } from '../chat/chat';
- import { AngularFireAuth } from 'angularfire2/auth';
- @Component({
- selector: 'page-contact',
- templateUrl: 'contact.html'
- })
- export class ContactPage {
- @ViewChild(Content) content: Content;
- data = { type:'', message:'' };
- chats = [];
- roomkey:string;
- nickname:string;
- offStatus:boolean = false;
- user = firebase.auth().currentUser;
- email = this.user.email;
- facebook = {
- nome: "",
- fotoUrl: ""
- }
- sendMessage() {
- if (this.email =="cesdrj@gmail.com"|| this.email=="cesdrj2@gmail.com"|| this.email=="thaisjimenes@gmail.com"){
- let newData = firebase.database().ref('chatrooms/'+this.roomkey+'/chats').push();
- newData.set({
- type:this.data.type,
- user:this.facebook.nome,
- message:this.data.message,
- photo:this.facebook.fotoUrl,
- sendDate:Date()
- });} else {
- alert('Você não tem permissões para conversar aqui !')
- }
- }
- exitChat() {
- let exitData = firebase.database().ref('chatrooms/'+this.roomkey+'/chats').push();
- exitData.set({
- type:'exit',
- sendDate:Date()
- });
- this.offStatus = true;
- this.navCtrl.push(ChatPage, {
- });
- }
- constructor(public navCtrl: NavController, public navParams: NavParams, public fire: AngularFireAuth,) {
- this.facebook.nome = fire.auth.currentUser.displayName;
- this.facebook.fotoUrl = fire.auth.currentUser.photoURL;
- this.roomkey = this.navParams.get("key") as string;
- this.data.type = 'message';
- let joinData = firebase.database().ref('chatrooms/'+this.roomkey+'/chats').push();
- joinData.set({
- type:'join',
- sendDate:Date()
- });
- this.data.message = '';
- firebase.database().ref('chatrooms/'+this.roomkey+'/chats').on('value', resp => {
- this.chats = [];
- this.chats = snapshotToArray(resp);
- setTimeout(() => {
- if(this.offStatus === false) {
- this.content.scrollToBottom(300);
- }
- }, 1000);
- });
- }
- }
- export const snapshotToArray = snapshot => {
- let returnArr = [];
- snapshot.forEach(childSnapshot => {
- let item = childSnapshot.val();
- item.key = childSnapshot.key;
- returnArr.push(item);
- });
- return returnArr;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement