AngularFire2数据库建模。将数据保存到多路径

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 }

我正在学习使用Firebase数据库和Angular。我设法创建了一个身份验证服务,并将用户信息保存在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;
}
所以,我必须回答一些问题。第一个问题是如何更新代码以按需要的方式保存数据。第二个问题是,这是否是在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: [''],
    });
}