我在我的应用程序中使用Ionic,Angular2和Firebase。
当用户注册时,我想在我的数据库中发送数据并填充用户的个人资料。
这是我正在做的事情:
app.module.ts:
import { AngularFireDatabaseModule } from 'angularfire2/database';
...
imports: [
BrowserModule,
IonicModule.forRoot(MyApp),
AngularFireModule.initializeApp(FIREBASE_CONFIG),
AngularFireAuthModule,
AngularFireDatabaseModule, //<-- angular firebase database
IonicStorageModule.forRoot()
],
login.ts:
import { AngularFireDatabase } from 'angularfire2/database';
...
export class LoginPage {
user = {} as User;
constructor(
private afAuth: AngularFireAuth,
private storage: Storage,
private database: AngularFireDatabase, //database
public navCtrl: NavController,
public navParams: NavParams) {
}
//this code gets called when the user presses the register button
async register(user: User) {
try {
const result = await this.afAuth.auth.createUserWithEmailAndPassword(user.email, user.password);
this.afAuth.auth.currentUser.updateProfile({
displayName: user.displayName
}).then(function() {
let currentUser = result;
let userData = {
email: currentUser.email,
name: currentUser.displayName,
uid: currentUser.uid,
created: new Date(),
}
this.database.list('users').set(userData.uid, userData); //<-- This is where error occurs.
}, function(error) {
console.log(error)
});
console.log(result);
} catch(e) {
console.log(e);
}
}
}
除了数据库之外,一切似乎都很有效。我可以注册用户并登录但是当我尝试将userData
发送到我的数据库时,我收到错误:
错误类型错误:无法读取属性&#39;数据库&#39;未定义的
有没有人有任何想法?我是Angular2的新手,所以这可能是一个非常简单的修复方法!
谢谢。