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

时间:2017-07-25 23:07:41

标签: angular typescript firebase firebase-realtime-database angularfire2

我正在学习使用带有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数据库中建模数据的正确方法吗?

感谢您的帮助!我真的很感激!

0 个答案:

没有答案