我有这样的数据结构:
groups
-KOrPKM2QUzuMnMlHfJu
name: "Testgroup 1"
members
0: 123456789
1: 987654321
-KOrPKM2QUzuMnMFGfXa
name: "Testgroup 2"
members
0: 123456789
未定义成员数。
如何让其中一个成员为123456789
的每个小组?
此问题与this不同,因为在另一个问题中,要检查的值的键实际上是已知的。
答案 0 :(得分:0)
使用push
时会生成唯一ID,要检索该节点下的值,您可以使用child_added
。
firebase.database().ref('groups').on('child_added', snap => {
firebase.database().ref('groups/'+snap.key+'/members').on('child_added', childSnapshot => {
if(childSnapshot.val() == '123456789') {
console.log('123456789 found in ' + snap.val().name);
}
});
});
上述代码会向child_added
添加groups
听众,以便在groups
下找到现有子项或添加新子项时,它会触发child_added
,现在snap.key
包含您想要的,唯一生成的ID,用于比较存储在members
中的值,另一个child_added
侦听器设置在members
上,它返回存储的所有值在0,1 ...
现在childSnapshot.val()
包含您要比较的值,一个简单的IF语句就足够了,如果找到匹配项,您只需使用snap.val().name
打印组名称;
答案 1 :(得分:0)
我创建了NSObject类并将其命名为FBNSArrayDB,在其中我创建了firebase ID,在您的情况下它将是:
<form>
<input type="radio" name="gender" value="general" checked> General<br>
<input type="radio" name="gender" value="medium"> Medium<br>
<input type="radio" name="gender" value="high"> High
</form>
然后在你的UIViewController中执行此操作
var name: NSString?
var members: NSString?
var 0: NSString?
var 1: NSString?
在func里面
var fbarray = [FBNSArrayDB]()//at the top