如何解决有没有办法使用 currentUser uid 创建 Firestore 文档
我正在尝试使用 Angular 和 Firebase 以最简单的方式设置前端后端关系。我需要在用户登录时将用户信息推送到 Firestore。我收到了令牌推送,但用户数据停止了管道,没有推送任何内容。
" firebase.auth().currentUser " 将数据添加到 Firestore 集合,但每次我尝试应用时似乎都没有推送任何数据。
import {
Component
} from '@angular/core';
import {
AngularFireMessaging
} from '@angular/fire/messaging';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/take';
import {
filter
} from 'rxjs/operators';
import {
mergeMapTo
} from 'rxjs/operators';
import {
mergeMap
} from 'rxjs/operators';
import {
AngularFireAuth
} from '@angular/fire/auth';
import firebase from 'firebase/app';
import {
AngularFirestore,AngularFirestoreCollection
} from '@angular/fire/firestore';
import {
Observable
} from 'rxjs';
import {
switchMap
} from 'rxjs/operators';
export class AppComponent {
private user = firebase.auth().currentUser
constructor(private afMessaging: AngularFireMessaging,public auth: AngularFireAuth,private afs: AngularFirestore) {}
requestPermission() {
this.afMessaging.requestPermission
.pipe(mergeMapTo(this.afMessaging.tokenChanges))
.subscribe(
(token) => {
this.afs.collection('users').add({
fcmtoken: token,userid: user.uid
})
},(error) => {
console.error(error);
},);
}
listen() {
this.afMessaging.messages
.subscribe((message) => {
console.log(message);
});
}
deleteToken() {
this.afMessaging.getToken
.pipe(mergeMap(token => this.afMessaging.deleteToken(token)))
.subscribe(
(token) => {
console.log('Token Has Been Deleted,Get a New One');
},);
}
login() {
this.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider());
}
logout() {
this.auth.signOut();
}
}
问题出在这里
requestPermission() {
this.afMessaging.requestPermission
.pipe(mergeMapTo(this.afMessaging.tokenChanges))
.subscribe(
(token) => {
this.afs.collection('users').add({
fcmtoken: token,//if i remove this - all works well. the token is pushed//
userid: user.uid
//
})
},(error) => {
console.error(error);
},);
}
我如何使用此代码并创建一个系统,在该系统中为每个用户创建一个新文档,并且该文档保存使用过的数据,包括令牌。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。