【发布时间】:2018-09-17 15:46:28
【问题描述】:
我使用 [cordova-plugin-firebase] 进行推送通知,我使用 firebase 实时数据库。我不确定为什么会出现以下错误。
错误:« this.firebase.getToken() 不是函数»
代码:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { AuthService } from '../../services/auth.service';
import { FirebaseProvider } from '../../providers/firebase/firebase';
import { LoginPage } from '../login/login';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'page-contact',
templateUrl: 'contact.html'
})
export class ContactPage {
user: Observable<any>;
constructor(
public navCtrl: NavController,
private auth: AuthService,
private firebase: FirebaseProvider
) {
this.auth.currentUserObservable.subscribe(() => {
this.user = this.firebase.getUserInfo(this.auth.currentUserId);
if (!this.auth.authenticated) {
this.navCtrl.setRoot(LoginPage);
}
});
this.pushsetup();
}
pushsetup() {
this.firebase
.getToken()
.then(token => console.log(`The token is ${token}`))
.catch(error => console.error('Error getting token', error));
this.firebase
.onTokenRefresh()
.subscribe((token: string) => console.log(`Got a new token ${token}`));
}
}
**代码 FirebaseProvider **
import { Injectable } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
@Injectable()
export class FirebaseProvider {
constructor(public afd: AngularFireDatabase) { }
getUserInfo(uid){
return this.afd.object('/users/'+ uid).valueChanges();
}
}
有什么想法吗?
【问题讨论】:
-
你能提供一个额外的代码
FirebaseProvider吗? -
试试这个:this.firebase.getIdToken();如果这不起作用,请尝试这样的事情:firebase.auth().currentUser.getIdToken()
标签: typescript firebase ionic-framework firebase-realtime-database