我想在firebase中列出管理员列表。管理员用户应该能够通过电子邮件添加其他管理员。
理想情况下,我喜欢"列表"像这样:
"admins": {
"a.b@gmail.com": true,
"c.d@gmail.com": true
}
这样我就可以通过电子邮件轻松添加新的管理员,并使用有用的身份验证规则 (验证用户by email),如下所示:
".write": "root.child('admins').child(auth.email).val() === true"
但是我无法使用这样的列表,因为Firebase restricts special characters in keys。
我该如何解决这个问题?
我的应用是客户端javascript(因此我无法使用firebase-admin)。
谢谢!
答案 0 :(得分:1)
每个注册用户都有一个firebaseID,因此我会以这种方式构建您的数据:
"users": { // Here you store user's data
"firebaseID1": {
"email": "a.b@gmail.com"
},
"firebaseID2": {
"email": "c.d@gmail.com"
}
},
"admins": {
"firebaseID1": true,
"firebaseID2": true
}
如果您想获取给定电子邮件的用户的ID,您可以使用firebase' queries:
firebase.database().ref("users").orderByChild("email").equalTo("a.b@gmail.com")
NB :firebase.com是旧网站,更新后的文档总是看firebase.google.com