如何使用angularfire2检查Firebase中是否存在父子关联

时间:2017-02-24 00:49:22

标签: angularfire2

我在下面的Firebase中有这个json数据结构。我需要创建一个新的子项,但我想先检查它是否存在。所以基本上我需要在推送新项目之前检查~/parentKey11/childKey21是否存在(在项目数组中)。

  "nodeA": [
    {
      "parentKey11":  {
        "childKey21": {
          "items": [
            {
              ...
            },
            {
              ...
            },
            {
              ...
            }
          ]
        },
        "childKey22": {
          "items": [
            {
              ...
            },
            {
              ...
            },
            {
              ...
            }]
        }
      }
    ]

为了简单起见。我可以先检查父键。但是下面的代码似乎不起作用:

const parentRef = this.af.database.object(`/nodeA/parentKey11`, { preserveSnapshot: true });

parentRef.subscribe(data => {
    if(data == null) {
        console.log('data does not exists')
    } else {
        console.log('data exists');
        console.log(data);
    }
});

1 个答案:

答案 0 :(得分:0)

此解决方案适用于我:

const parentRef = this.af.database.object(`/nodeA/parentKey11`, { preserveSnapshot: true });

parentRef.subscribe(data => {
    if(data.val()==null) {
        console.log('data does not exists')
    } else {
        console.log('data exists');
    }
});



const parentChildRef = this.af.database.object(`/nodeA/parentKey11/childKey21`, { preserveSnapshot: true });

parentChildRef.subscribe(data => {
    if(data.val()==null) {
        console.log('data does not exists')
    } else {
        console.log('data exists');
    }
});