Trying to resolve some data from angularfire2 in my router. When I pass it return of('Hello Alligator!')
my component logs Hello Alligator
but when I try and resolve the data from the angularfire service it just hangs and never resolves. I'd also like to set it up where I can still add to the collection. What am I doing wrong?
//SmsListResolverService
import {Resolve, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router'
import {Observable, of} from 'rxjs'
import { SMS } from './SMS.interface';
import {FirebaseService} from '../_shared/firebase.service'
import { Injectable } from '@angular/core';
import { AngularFirestore } from '@angular/fire/firestore';
@Injectable()
export class SmsListResolverService implements Resolve<Observable<any>>{
constructor(private db:AngularFirestore){
}
resolve(){
// this_works-----> return of('Hello Alligator!')
return this.db.collection('messages').valueChanges() //not this
}
}
//Route module
export const routes: Routes = [
{
path: 'chat',
component: SmsComponent,
resolve: { messages: SmsListResolverService }
}
];
//component
export class SmsComponent{
constructor(public sms: SmsService, private route:ActivatedRoute) {
console.log(this.route.snapshot.data)
}