AngularFire2数据库建模。将数据保存到多路径
我正在学习使用Firebase数据库和Angular。我设法创建了一个身份验证服务,并将用户信息保存在Firebase数据库中。我正在编写一个应用程序,用户可以在其中购买产品,我需要将交易链接到用户。 这是我的数据库的当前状态:AngularFire2数据库建模。将数据保存到多路径,angular,typescript,firebase,firebase-realtime-database,angularfire2,Angular,Typescript,Firebase,Firebase Realtime Database,Angularfire2,我正在学习使用Firebase数据库和Angular。我设法创建了一个身份验证服务,并将用户信息保存在Firebase数据库中。我正在编写一个应用程序,用户可以在其中购买产品,我需要将交易链接到用户。 这是我的数据库的当前状态: users { 021oxk8X6rQL6gAfC0UhZpB4vZx2 { email: test@test.com firstName: dasdsa lastName: dsadsads }
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;
}
所以,我必须回答一些问题。第一个问题是如何更新代码以按需要的方式保存数据。第二个问题是,这是否是在NoSql数据库中建模数据的正确方法
谢谢你的帮助!我真的很感激 你已经试过什么了?您搜索过NoSql数据库指南吗?我注意到您的提问没有进行太多研究-请随时告知我们您在回复@0mpurdy时做了哪些工作。我确实在寻找,这就是为什么我知道筑巢不好的原因。最好保持数据平面,这就是我使用transactionsPerUser的原因。但我不知道我做得是否正确。关于编码部分,我尝试在postData()中插入$key,但没有定义。我不想在没有研究的情况下提问。只是没有太多涉及角度和火基的资源。此外,AngularFire2在几周前已经更新,因此大多数资源都没有更新为最新版本。您可以将您在评论中提到的内容添加到问题中-这对回答问题的人来说意味着很多,看看您已经尝试了什么!你也可以看一些要点是的,你是对的。对不起。我将打开一个新的线程,其中包含关于我在这里所问的步骤之一的更精确的信息。谢谢你的时间!
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: [''],
});
}