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)
  }
 
    