Firebase,获得具有特定价值的孩子的直接父母

Jac*_*aif 4 ios firebase swift firebase-realtime-database

我正在使用firebase后端的ios应用程序.当用户注册时,用户节点在firebase中创建,其中有不同的孩子,如电子邮件,姓名,头像等.我正在做的是我在用户节点中搜索一些电子邮件,如果我在某个节点中找到该电子邮件,我想得到它的父键,即-Ksdd23d2djhsdgjhs.看图像:图片

如果电子邮件与我的电子邮件匹配,我想用上箭头获取值.

我有一个电子邮件地址,我正在搜索用户节点中的所有孩子,然后在里面进一步检查以比较电子邮件和我的电子邮件.如果电子邮件匹配,我想得到它的父节点,如图像中的Dn2LUAwdolg ......

我可以在用户节点下获得第一个节点.假设图片中显示的节点Dn2LU ..处于某个未知位置,并且如果它的电子邮件子值与我正在比较它的那个匹配,我必须搜索所有用户以获取其名称.

希望现在很清楚

And*_*wel 8

我认为您所寻找的内容已在此处记录:https: //firebase.google.com/docs/reference/js/firebase.database.Reference#equalTo

我不是IOS开发人员,但我这是一个JS示例:

// Find all users which match the child node email.
var ref = firebase.database().ref('user');
ref.orderByChild('email').equalTo('wal@aol.com').on("value", function(snapshot) {
  snapshot.forEach((function(child) { console.log(child.key) }); 
});
Run Code Online (Sandbox Code Playgroud)

快照包含整个节点,但snapshot.key将返回节点密钥(在您的示例中:Dn2LUAwdolg ...)


tor*_*ers 7

您可以使用快照从快照中获取引用.ref,然后在子引用上使用引用的父级,.parent然后使用.key获取该引用的键,该键将是示例中的父键:Dn2LUAwdolgf6HCn11UiSihejty1

所以我们举例说明了avata的快照

snapshot.ref.parent.key
Run Code Online (Sandbox Code Playgroud)

在你的情况下,这将是相同的

Dn2LUAwdolgf6HCn11UiSihejty1
Run Code Online (Sandbox Code Playgroud)