我在Qt应用程序中使用Firebase进行身份验证和实时数据库功能,当用户注册时,需要将他们分配到所选组中,然后再分配到该组的部门中。每个小组都有管理员,他们可以访问整个小组数据库,但用户只能访问其部门。
下面是我的注册表单代码,该代码分配了某些用户值,我该如何将数据库中的用户与我的注册表单上的其他选项进行分组?
onUserRegistered: {
indicator.stopAnimating()
console.debug("User login " + success + " - " + message)
if(success) {
loginDialog.title = "Success!"
firebaseDb.setUserValue("Firstname", firstname.text)
firebaseDb.setUserValue("Surname", surname.text)
} else {
loginDialog.title = "An Issue occured!"
}
loginDialog.text = message
loginbutton.visible = true
registerCheckbox.visible = true
loginDialog.open()
}
我希望按以下方式布置数据库,如果适合使用?具有用户的多个位置组可以访问数据库的这一部分!
{
"groups" : {
"Colchester" : {
},
"Ipswich" : {
},
"CanaryWharf" : {
"Departments" : {
"Admin" : {
"members" : {
"user1" : true
}
},
"Assistant" : {
"members" : {
"user2" : true
}
},
"Reception" : {
"members" : {
"user3" : true,
"user1" : true
}
},
"Stylist" : {
"members" : {
"user4" : true
}
},
"Technician" : {
"members" : {
"user5" : true
}
}
}
}
}
答案 0 :(得分:0)
无法访问Firebase Cloud Firestore集合(在链接中进行了详细说明;
Google Firebase Cloud Firestore Collections
我通过以下代码实现了对用户进行分组的结果,如果有人仍然想添加改进的版本,请这样做,但是现在这对我来说是可行的:
App {
id: app
property var groupName
property var subGroupName
//these values are assigned when my user logs in from user values
//set in firebase on registration
firebaseDb.getUserValue("group", {
}, function(success, key, value) {
if(success){
groupName = value
console.log("GROUPNAME LOG: " + groupName)}})
}
///然后我在数据库中存储数据时在整个应用程序中使用这些值
///其中一个示例是我的应用中其他位置的AppButton
AppButton {
id: saveButton
onClicked: {
userData = ({"date": calendar.selectedDate, "name": userName +" "+ userSurname, "details": dayCycle.text, "status": "pending"})
var time = new Date().getTime()
firebaseDb.setValue("groups" + "/" + groupName + "/" + subGroupName + "/" + time, userData)
}
}