【发布时间】:2017-10-18 21:27:26
【问题描述】:
我正在使用 firebase 学习 Angular。我目前正在尝试在 firebase 中创建一个用户,但还要将该用户及其电子邮件和用户 ID 添加到数据库中。
我有一个组件正在调用我的 firebase 服务。
//register.component.ts
import { FirebaseService } from '../../services/firebase.service';
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-register',
templateUrl: './register.component.html',
styleUrls: ['./register.component.css']
})
export class RegisterComponent implements OnInit {
username:string;
email:string;
password:string;
constructor(
private firebaseService:FirebaseService
) {
}
ngOnInit() {
}
OnSubmit()
{
this.firebaseService.register(this.username,this.email,this.password)
.then( (res) =>{
console.log("firebase has registered the user: "+ res);
})
.catch( (err)=>{
console.log("There was an error registering: "+ err.message);
});
}
}
这就是服务 firebase.service.ts
import { Injectable } from '@angular/core';
import { AngularFireDatabase, AngularFireList } from "angularfire2/database";
import{ AngularFireAuth} from 'angularfire2/auth';
import {Observable} from 'rxjs/Observable';
import * as firebase from 'firebase/app';
@Injectable()
export class FirebaseService {
users: AngularFireList<any[]>;
constructor(
public afAuth: AngularFireAuth,
public af: AngularFireDatabase
) {
this.users = af.list('users/');
}
register(username:string, email:string, password:string)
{
return new Promise ((resolve, reject) =>{
this.afAuth.auth.createUserWithEmailAndPassword(email,password)
.then( (userData) => {resolve(userData),
err => reject(err) });
});
}
}
我没有收到任何错误,注册功能正在将用户创建为注册用户,但我不知道如何将该用户添加到路径 'users/' 中的数据库中
我知道返回的 userData 对象包含所有用户信息,但我不知道在 .then 部分中我将编写代码以将该用户添加到数据库的位置。我知道 firebase 最近刚刚更改为 AngularFireList 而不是 AngularFireListObservables,这让我们很难找到答案。
感谢您提供的任何帮助。已经为此工作了一段时间。
【问题讨论】:
标签: angular typescript firebase firebase-realtime-database firebase-authentication