Firebase:将子键从一个表映射到另一个表

时间:2017-10-30 05:47:33

标签: javascript angular firebase firebase-realtime-database nosql

我是firebase数据库的新手,我需要一些帮助才能映射到两个表。

  1. 我有两张桌子,机器人和模板。模板密钥分配给机器人表下的子节点。 tables
  2. 在机器人表中,我想显示模板名称而不是键。 tables display
  3. 如何在分配给机器人时限制删除模板。
  4. 这是来自firebase db的GET。

    export class Robot {
    $key: string;
    title: string;
    password: string;
    otp: number;
    roboid: string;
    createdtimeStamp: number;
    updatedtimeStamp: number;
    createduser: string;
    status: string;
    assignedtemplate: string;}
    
    export class Template {
    $key: string;
    title: string;
    createdtimeStamp: number;
    updatedtimeStamp: number;
    createduser: string;
    messages: string[];}
    
    getRobosList(query?) {
    return this.robosRef.snapshotChanges().map(arr => {
      return arr.map(snap => Object.assign(snap.payload.val(), {$key: snap.key}));
    });
    

    }

1 个答案:

答案 0 :(得分:0)

看起来问题在于我对rxjs和observable的理解。所以,我使用快捷方式用以下代码实现我的目标。

this.templates.subscribe(temp => {
  temp.forEach(item => {
    if ( item.$key === this.myassignedTemplate) {          
      this.selectedRobot.assignedtemplatename = item.title;
    }
  });
  this.rs.updateRobot(this.selectedRobot);
});
  1. 我展开一列以保存标题
  2. 订阅firebase observable
  3. 在我的订阅中,我循环并与myassignedtemplate进行比较
  4. 从订阅更新到firebase。
  5. 这是结果。 final

    这个stackoverflow问题类似于我的问题。

    欢迎提高我的答案。 谢谢大家。