我正在学习使用带有Angular的Firebase数据库。我设法创建了一个auth服务并将userinfo保存在Firebase数据库中。我正在编写一个用户可以购买产品的应用程序,我需要将交易与用户链接。 这是我的数据库的当前状态:
users {
021oxk8X6rQL6gAfC0UhZpB4vZx2 {
email: test@test.com
firstName: dasdsa
lastName: dsadsads
}
}
transactions {
DS766jdF6rQL6gAfC0Uh43Jhfw {
product: thing
price: 1000
}
}
这就是我需要的
transactions {
DS766jdF6rQL6gAfC0Uh43Jhfw {
product: thing
price: 1000
buyer: 021oxk8X6rQL6gAfC0UhZpB4vZx2 (User Key)
}
}
transactionsPerUser {
021oxk8X6rQL6gAfC0UhZpB4vZx2 (User Key) {
transaction: DS766jdF6rQL6gAfC0Uh43Jhfw (Transaction Key)
}
}
我的代码是:
数据库服务:
import { Injectable } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
@Injectable()
export class DbfirebaseService {
TransData: FirebaseListObservable<any[]>;
constructor(private db: AngularFireDatabase) { }
postData(info: TransData) {
this.db.list('transactions').push({
product: info.product,
price: info.price,
});
console.log(info);
}
}
interface TransData {
product: string;
price: number;
}
Component.ts
myForm: FormGroup;
error = false;
errorMessage = '';
constructor(private fb: FormBuilder, private dbfr: DbfirebaseService) {
}
onSub() {
this.dbfr.postData(this.myForm.value);
}
ngOnInit(): any {
this.myForm = this.fb.group({
firstname: [''],
lastname: [''],
});
}
所以,我不得不提问。第一个是如何更新我的代码以按照我需要的方式保存数据。第二个是如果这是在NoSql数据库中建模数据的正确方法吗?
感谢您的帮助!我真的很感激!