首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AngularFire2如何使用您自己的自定义密钥而不是自动生成的密钥

AngularFire2如何使用您自己的自定义密钥而不是自动生成的密钥
EN

Stack Overflow用户
提问于 2016-11-10 17:53:36
回答 8查看 7.1K关注 0票数 8

目前我使用的是:

代码语言:javascript
运行
复制
this.af.database.list('users').push(user);

如何使提交的对象的key成为自定义对象。因此,我希望能够将此对象的节点设置为与注册用户相同的uid。我有权访问这个Id,我只需要知道如何使自定义用户对象节点在推送时不是自动生成的id。

谢谢

EN

Stack Overflow用户

发布于 2017-07-26 00:27:21

传入您的自定义密钥,在本例中为projectKey,它是您从某个位置填充的变量:

代码语言:javascript
运行
复制
private whatEverName(projectKey) {
    this.projectKey = projectKey;
    this.af.object('/Projects/' + this.projectKey);
}

在代码中的某个地方调用whatEverName(projectKey),您就有了一个自定义的节点键。此建议截至2017年7月25日有效。

我在这里添加了更多,以帮助那些试图创建一个子节点的人使用另一个推键作为自定义键来创建一个子节点。这对于该项目下的关联索引非常有用,例如在该项目上工作的用户列表。您可能不想在项目数据中包含此列表,但可以通过查询来获取它。这使得数据的非正规化变得更容易,并且拥有更扁平的架构,Firebase的目标。

在本例中,该关联节点名为ProjectsMembers,我们在其中记录了项目的所有者。以同样的方式添加其他用户节点。注意的反引号!单引号不起作用。在本例中,我设置了一个所有者名称作为对按键的引用。更容易在数据库中读取。

代码语言:javascript
运行
复制
// Add child node with project key as push key to the association index.
this.af.object(`ProjectsMembers/${projectKey}/` + this.ownerKey)
   .set({ ownerName: this.ownerName });
票数 1
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40524525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档