如何在React Native中从Firebase实时数据库获取当前用户数据

时间:2020-02-14 05:38:13

标签: firebase react-native react-redux firebase-authentication react-native-android

我正在尝试从Firebase实时数据库中获取当前已签名用户的 图像和名称 。我想将这两个项目放在抽屉标题中。 enter image description here您可以看到所附的屏幕截图。

这是当前用户 enter image description here

这是当前用户的数据。我想根据当前登录的用户获取数据

enter image description here

3 个答案:

答案 0 :(得分:1)

如果您使用firebase登录,则可以获得currentUser.uid

尝试我的代码,

firebase
      .database()
      .ref('Users/' + firebase.auth().currentUser.uid)
      .once('value')
      .then(snapshot => {
        console.log(snapshot.val()) <--will print the user data
      });

希望这对您有用。

答案 1 :(得分:1)

尝试创建一个异步函数,这样您就可以使用UID从任何用户那里检索数据,如下所示:

export async function getUserByUID(UID) {
  return await firebase.database().ref(`Users/${UID}`).once('value');
}

稍后,您只需传递UID并获取任何用户的数据:

const getMyData = async () => {
  let UID = firebase.auth().currentUser.uid;
  let userData = await getUserDataByUID(UID);
  // this will be null if there's no user data
  // all users' data will be in userData for example:
  console.log(userData.image) // will log the image url you saved.
}

顺便说一句,不要忘记您的Firebase数据库规则!您最后想要看到的就是其他人看到的密码!

答案 2 :(得分:0)

检查以下代码

 firebase.database().ref(`Users/${firebase.auth().currentUser.uid}`).once('value', function (snapshot) {
        console.log(snapshot.val())
    });