通过id在firebase中存储数据但忽略重复项

时间:2017-04-30 06:37:42

标签: node.js firebase firebase-realtime-database

我有一个show的概念,我建立的应用程序看起来像这样:

{"band":"Jimmy Herring And The Invisible Whip","date":"2017-12-08T00:00:00-08:00","numberOfShows":"1 show","venue":"Warfield, S.F.","time":"7pm/8pm","soldOut":false,"pit":false,"multiDay":false,"ages":"a/a","price":"$100"}

每个show都有几个属性,包括一个band;如果日期时间和地点相同,则shows的几行可以是相同的event,但每个show都是它自己的对象。

我想遍历一个show数组,并在名为artist的名称空间中的firebase上存储波段。

这是我的代码:

        for (const parsedShow of parsedShows) {
            let artistref;
            let artist;
            artistref = this.db.ref(`artist`);
            artist = await artistref.push({ name: parsedShow.band });
        }

其中node.js函数正在以db

的形式传递启用admin的数据库连接

这将使用类似

的拓扑存储数据

artist/{id}/[name: {name}]

我认为如果我需要填充event名称空间以及与给定事件相关联的艺术家id(并且id由...自动生成的地方},我认为这样可以正常工作火力)。

我的问题是,如果数据库中已存在给定的波段名称,如何阻止写入我的firebase数据库?我想只强制执行唯一的带名。

另外,有没有办法在ref中合并一个由firebase生成的id?如果可能的话,我更愿意artist/name/{name: parsedShow.band, id: <some firebase-generated id>}

1 个答案:

答案 0 :(得分:0)

您可以使用自己生成的ID引用https://gist.github.com/mikelehen/3596a30bd69384624c11