我正在使用React Native w / Redux和Firebase开发应用程序。我正在尝试实现组用户管理,其中登录的用户可以通过他们的uid将另一个用户添加到组。但是,我似乎无法通过他们的uid检索另一个用户。
即使使用了正确的users/${enteredUid}
,路径uid
的快照也会返回空对象。我也无法通过获取users/
的快照来检索所有用户的列表,因为这也会返回一个空白对象。
firebase是否允许经过身份验证的用户查看与其他用户相关的任何数据?我无法在网上找到合适的解决方案。
export const addUser = (enteredUid) => {
const { currentUser } = firebase.auth();
return (dispatch) => {
let user = {};
firebase.database().ref(`users/${enteredUid}`)
.on('value', snapshot => {
user = snapshot.val();
});
if (user !== undefined) {
console.log(user);
firebase.database().ref(`users/${currentUser.uid}/group/users`)
.push(user)
.then(() => {
dispatch({ type: GM_SET_SUCCESS, payload: `User ${enteredUid.username} added successfuly!` });
}
);
} else {
dispatch({ type: GM_SET_ERROR, payload: `User ${enteredUid} does not exist!` });
}
};
};
Firebase数据库规则
{
"rules": {
"users": {
"$uid": {
".read": true,
".write": "$uid === auth.uid"
}
}
}
}
数据库屏幕截图