如何在angularFire2中获取关联对象的对象键?
我通过userkey查询数据库,以查找是否存在关联的对象:如何在angularFire2中获取关联对象的对象键?,angular,angularfire2,Angular,Angularfire2,我通过userkey查询数据库,以查找是否存在关联的对象: let url=`/userMember/${userKey}` const userMemberRef = this.af.database.object(url, { preserveSnapshot: true }); userMemberRef.subscribe(data => { if(data.val()!=null) { console.log(data.val()); memberKey=
let url=`/userMember/${userKey}`代码>
const userMemberRef = this.af.database.object(url, { preserveSnapshot: true });
userMemberRef.subscribe(data => {
if(data.val()!=null) {
console.log(data.val());
memberKey= data.val();
}
});
return memberKey;
它将此记录在控制台中,这很好,因为我想要的数据就在那里
Object{-Ke2CyV2BJ5S3_7qcj5:true}
但是如何返回子键值“-Ke2CyV2BJ5S3_7qcQj5
”
似乎很琐碎。我感谢你的帮助 data.val()
实际上引用了userKey
的值。由于userMember/${userKey}
不是键-值对的路径,而是对象,因此userKey
的“值”就是该对象。如果要将该对象的属性的键指定给变量,则需要映射到该属性的键
由于可以安全地假设您无法预测该密钥将是什么,所以据我所知,没有一种简单的方法可以做到这一点。从好的方面来看,有许多可以想象的方法可以做到这一点。重要的是你要理解上面的内容
事实上,您没有一种直接的方法来访问此密钥,并且希望这样做,这可能表明您应该重新考虑模型的结构(如果可能的话)
我将向您介绍如何“获取”键的示例,主要是为了说明它与您使用的路径的关系:
this.af.database.object(`userMember/${userKey}`)
.subscribe(member => console.log(Object.keys(member)[0]));
data.val()
实际上引用了userKey
的值。由于userMember/${userKey}
不是键-值对的路径,而是对象,因此userKey
的“值”就是该对象。如果要将该对象的属性的键指定给变量,则需要映射到该属性的键
由于可以安全地假设您无法预测该密钥将是什么,所以据我所知,没有一种简单的方法可以做到这一点。从好的方面来看,有许多可以想象的方法可以做到这一点。重要的是你要理解上面的内容
事实上,您没有一种直接的方法来访问此密钥,并且希望这样做,这可能表明您应该重新考虑模型的结构(如果可能的话)
我将向您介绍如何“获取”键的示例,主要是为了说明它与您使用的路径的关系:
this.af.database.object(`userMember/${userKey}`)
.subscribe(member => console.log(Object.keys(member)[0]));
只用
const key = object['$key'];
只用
const key = object['$key'];
这里,subscribe
是异步的,因此在分配值之前返回memberKey
。那么,获得该值的解决方案是什么?我以为订阅会打开它。我需要使用方法所需的值展开。在这里,subscribe
是异步的,因此在分配值之前返回memberKey
。那么,获得该值的解决方案是什么?我以为订阅会打开它。我需要使用方法所需的值展开。适用于我的语法是console.log(Object.keys(member.val())[0])代码>我假设是因为您使用的是preservesapshot
。您是否尝试在不使用它的情况下记录密钥?对我有效的语法是console.log(Object.keys(member.val())[0])代码>我假设是因为您使用的是preservesapshot
。你有没有试着在没有它的情况下记录钥匙?砰!你是老板:这是我最优雅的解决方案!你是老板:这是最优雅的解决方案