【发布时间】:2018-09-29 20:20:48
【问题描述】:
请帮助我,我是 angular6 firebase 编程的新手。 我有很好的带有电子邮件和密码的 Firebase 身份验证系统。但是从注册开始,当我将用户存储在数据库中时,我只能获得 uid 和电子邮件。我对 updateProfile 很感兴趣,但不知道如何在我的代码中实现。 我正在使用“@angular/fire”:“^5.0.0”, "firebase": "^5.5.1", 所以我问这个版本好还是我需要改变。 回到问题:服务:
import { Injectable } from "@angular/core";
import { AngularFireAuth } from "@angular/fire/auth";
import {
AngularFirestore,
AngularFirestoreCollection,
AngularFirestoreDocument
} from "@angular/fire/firestore";
import { Observable } from "rxjs";
import "rxjs/add/operator/map";
@Injectable()
export class AuthService {
constructor(private afAuth: AngularFireAuth, private db: AngularFirestore) {
// this.afAuth.authState.subscribe(auth => console.log(auth));
}
login(email: string, password: string) {
return new Promise((resolove, reject) => {
this.afAuth.auth
.signInWithEmailAndPassword(email, password)
.then(userData => resolove(userData), err => reject(err));
});
}
getAuth() {
return this.afAuth.authState.map(auth => auth);
}
logout() {
this.afAuth.auth.signOut();
}
register(email: string, password: string) {
return new Promise((resolove, reject) => {
this.afAuth.auth
.createUserWithEmailAndPassword(email, password)
.then(userData => resolove(userData), err => reject(err));
});
}
}
组件
import { Component, OnInit } from "@angular/core";
import { AuthService } from "../../service/auth.service";
import { Router } from "@angular/router";
@Component({
selector: "app-register",
templateUrl: "./register.component.html",
styleUrls: ["./register.component.css"]
})
export class RegisterComponent implements OnInit {
email: string;
password: string;
constructor(private authService: AuthService, private router: Router) {}
ngOnInit() {}
onSubmit() {
this.authService
.register(this.email, this.password)
.then(res => {
this.router.navigate(["/"]);
})
.catch(err => console.log(err.message));
}
}
我的目标是在数据库中将 displayName 和 Skill 作为 User 的属性。使用我的代码注册后 displayName 为空。所以我的问题是如何将 displayName 存储在数据库中? 泰 维克多。
【问题讨论】:
-
欢迎来到 StackOverflow。我不确定你的问题是什么。
-
我正在使用 Firebase 电子邮件和密码身份验证。它有效。但我也想将 displayName 道具存储在数据库中。例如,我想说你好 {{ user.displayName }}。但我不能因为我不知道如何将它存储在数据库中。 Atm displayName 为空。
-
你使用的是firestore还是实时数据库?
-
云火存储。
标签: typescript firebase firebase-authentication angular6 angularfire2