我有一个firebase数据库,员工数据的结构如下。我还有一个用户表,它具有'Company ID'属性。每次用户登录时,我都希望获取与用户“公司ID”匹配的所有员工。是否有可能实现这使用firebase数据库规则或我必须写一些查询。
Employee:
{
"+911234567890" : {
"admin" : true,
"companyId" : "C1",
"depId" : "D5",
"designation" : "D1",
"dob" : "2019-04-02T18:30:00.000Z",
"doj" : "2019-04-18T18:30:00.000Z",
"empEmail" : "nishant.k@zetwerk.com",
"empId" : "E4",
"empPhone" : "+911234567890",
"first_name" : "Nishanth",
"gender" : "male",
"last_name" : "K",
"manager" : "M2",
"type" : "permanent"
},
"+919035105184" : {
"admin" : true,
"companyId" : "C2",
"depId" : "D1",
"designation" : "Software engineer",
"dob" : "1991-07-31T18:30:00.000Z",
"doj" : "2018-07-24T18:30:00.000Z",
"empEmail" : "arpit.s@zetwerk.com",
"empId" : "E10",
"empPhone" : "+919035105184",
"first_name" : "Arpit",
"gender" : "male",
"last_name" : "Srivastava",
"manager" : "M1",
"type" : "PERMANANENT"
},
"+919698286236" : {
"admin" : false,
"companyId" : "C1",
"companyName" : "Zetwerk",
"depId" : "D1",
"depName" : "Engineering",
"empEmail" : "dhanalakshmi.s@zetwerk.com",
"empId" : "E1",
"empPhone" : "+919698286236",
"firebaseId" : "-LbNvaKFjqaaMl_JbNxd",
"first_name" : "Dhanalakshmi",
"type" : "contract"
},
"+919738749877" : {
"companyId" : "C1",
"depId" : "D2",
"empEmail" : "sagar.k@zetwerk.com",
"empId" : "E3",
"empPhone" : "+919738749877",
"firebaseId" : "-LbNbABScOEzl-sMFE1u",
"first_name" : "Sagar",
"type" : "permanent"
},
"+919972984851" : {
"admin" : true,
"companyId" : "C1",
"depId" : "D6",
"designation" : "SDE",
"dob" : "2019-04-23T18:30:00.000Z",
"doj" : "2019-04-02T18:30:00.000Z",
"empEmail" : "saikumarganji1994@gmail.com",
"empId" : "Z002",
"empPhone" : "+919972984851",
"first_name" : "Sai",
"gender" : "male",
"last_name" : "Kumar",
"type" : "permanent"
}
}
User:
"1":{
"Name" : "Nishant Gupta",
"companyId" : "C1",
"role" : "admin"
}
您确实必须使用查询,如下所示。我假设您在前端知道用户的companyID
;
var db = firebase.database();
var userCompanyId = 'C1'; //you'll probably get this value from the user profile
db.ref('Employee')
.orderByChild('companyId')
.equalTo(userCompanyId)
.once('value', function(dataSnapshot) {
dataSnapshot.forEach(function(childSnapshot) {
var childKey = childSnapshot.key;
var childData = childSnapshot.val();
console.log('childKey : ', childKey);
console.log('childData : ', childData);
});
});
我在一个Android应用程序中使用Firebase数据库,每次用户启动时,我都会在数据库中存储一些值,为此我会执行以下操作: 正如您在子方法中看到的,如果称为“usrId”,它将创建usrId目录,并在其中添加所有neccesary信息。但是我想为每个用户创建目录,所以我尝试传递usrId变量作为参数。但它不起作用。当我调试代码时,调试器说本地var usrId无法识别,我的问题是如何在Fire
3.移除值事件侦听器和脱机的区别。
我正在尝试检索一些值而不是其他值。事实上,我想通过用户的名字来搜索他们。 我尝试使用和,但找不到正确的解决方案。 如您所见,我还添加了。如果我不添加那个部分,它就不会检索任何东西。我想要的只是从我在TextField中所写的内容开始检索值。
该库只支持Double、Boolean和String。我现在真困惑。怎么可能?
所以我正在制作约会应用程序,现在我需要为用户创建一个匹配的人员列表。 因此,我需要一个firebase查询来查看性别,并检查是否已经匹配,如果匹配,则不应将其包括在列表中。 我试着按性别过滤数据。如何编辑此查询以检查它们是否已匹配?匹配项显示在用户/{userID}/Matches/{matchedUserID}中 这是我尝试的: