我正在使用firebase创建一个项目,我在那里专门用Google实现身份验证,它运行良好,但现在我需要将注册数据保存在数据库中,这就是问题所在,我和#39 ; m关注此网址中的资料https:/ / angularfirebase.com/lessons/google-user-auth-with-firestore-custom-data /
它会产生以下错误。
消息错误
应该注意我使用的是Angular 6。
...问候
答案 0 :(得分:0)
试试这段代码:
this.user$ = this.afAuth.user.pipe(
switchMap(user => {
if (user) {
return this.afs
.doc<UsuarioInterface>(`usuarios/${user.uid}`)
.valueChanges();
} else {
return of(null);
}
})
);
如果用户未登录,则可观察的user$
将为空,否则将具有用户的数据。
答案 1 :(得分:0)
我了解无奈。但是,您也可以执行以下“修补”以实现相似的目标:
使用电子邮件注册:
import { Injectable } from "@angular/core";
import 'rxjs/add/operator/toPromise';
import { AngularFireAuth } from 'angularfire2/auth';
import * as firebase from 'firebase/app';
@Injectable()
export class yourAuthService {
constructor(
public afAuth: AngularFireAuth
){
}
.......
........
........
emailRegister(val){
return new Promise<any>((resolve, reject) => {
firebase.auth().createUserWithEmailAndPassword(val.email, val.password)
.then(() => {
const user = firebase.auth().currentUser;
var userRef = firebase.firestore().collection("users/").doc(user.uid);
userRef.set({name: name, email: value.email, user: 'newUser.uid', adminEmail: '' })
.then(function (){
})
})
})
}
这应该可以解决问题,您将走上快乐之路!甜美而简单。您也可以将相同的方法用于社交媒体注册方法:)。是的,您可以在Angular-6中使用该代码段。希望它可以帮助您获得更好的见识和更多选择。也许有人会更好地解释不同的方法。