当前位置: 首页 > 知识库问答 >
问题:

如何检索用户数据从Firebase身份验证在反应本机?

云和同
2023-03-14

我已与以下用户手动导入数据库的JSON文件:

{
  "users": {
    "Naseebullah": {
      "name": "Naseebullah Ahmadi",
      "gender": "Male",
      "type": "Patient",
      "Doctors": ["Ernest"],
      "age": "20",
      "DOB": "02/06/1997",
      "address": "122 Atherstone Court",
      "contactNumber": "07473693312",
      "emailAddress": "Naseebullah@kcl.ac.uk",
      "profilePicture": "../Images/profile.jpg",
      "ECG": [0, 0, 0, 0, 0.0000050048828125, 0.0000137939453125],
      "HeartSound": [0, 0, 0, 0, 0.0000050048828125, 0.0000137939453125]
    },

    "Ernest": {
      "name": "Ernest Kamavuako",
      "gender": "Male",
      "type": "Doctor",
      "Patients": ["Naseebullah"],
      "age": "30",
      "DOB": "20/12/1970",
      "address": "122 Harrow Street",
      "contactNumber": "07473033312",
      "emailAddress": "Ernest@kcl.ac.uk",
      "profilePicture": "../Images/profile.jpg",
      "ECG": [""],
      "HeartSound": [""]
    }
  }
}

问题是当我以“Naseebullah”(naseebullah@kcl.ac.uk)登录时,我没有收到他的详细信息:

"Naseebullah": {
  "name": "Naseebullah Ahmadi",
  "gender": "Male",
  "type": "Patient",
  "Doctors": ["Ernest"],
  "age": "20",
  "DOB": "02/06/1997",
  "address": "122 Atherstone Court",
  "contactNumber": "07473693312",
  "emailAddress": "Naseebullah@kcl.ac.uk",
  "profilePicture": "../Images/profile.jpg",
  "ECG": [0, 0, 0, 0, 0.0000050048828125, 0.0000137939453125],
  "HeartSound": [0, 0, 0, 0, 0.0000050048828125, 0.0000137939453125]
},

换句话说,我不知道他的名字,性别等等...

这是我进行身份验证的地方:

const onLogin = creds => {
  const { email, password } = creds;
  //console.log("props123 ", values, nav);
  firebase.auth().signInWithEmailAndPassword(email, password).then((user) => {
    console.log("user: ", user);
    /*
     * User is logged in
     *
     * */
  }).catch(err => {
    const { code,message } = err;
    console.log("not loggedin, ", message);
  });
};

当用户通过电子邮件和密码进行身份验证时,如何从数据库中检索用户的详细信息?

共有3个答案

干浩然
2023-03-14

直接从firebase网站:

 firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
   console.log("user: ", user);
   // User is signed in.
  } else {
   // No user is signed in.
  }
});

https://firebase.google.com/docs/auth/web/manage-users

傅和璧
2023-03-14

使用当前数据库结构,您可以通过执行以下操作在onLogin方法中获取用户数据:

firebase
  .database()
  .ref('users')
  .orderByChild('emailAddress')
  .equalTo(email)
  .once('value', snap => console.log(snap.val()));

获取当前用户数据。

但是,您不应该在users节点中使用用户的名字作为键,当您有两个名为Ernest的用户时会发生什么?它将中断(您将删除第一个Ernest用户)。而是考虑使用AuthUID作为密钥,保证它是唯一的并且绑定用户。

杨鸿畅
2023-03-14

身份验证子系统,firebase。auth()不是存储用户配置文件信息的位置<代码>火基。auth()将创建一个firebase。auth()。当前用户。uid每个用户的唯一标识符,并可能提供一些详细信息,如电子邮件地址、照片URL等。

创建users集合,并将每个用户的个人资料数据(如年龄)存储在标识符为firebase的文档中。auth()uid。

使用. onAuthStateChanged检测用户登录状态,并从数据存储中订阅(获取)用户配置文件数据。

 类似资料:
  • null /signup=>在我的数据库中注册用户,颁发令牌 /登录 /refresh_token null null null 我想要的是客户机V1的一致和兼容API。APIV1的任何现有客户端(应用程序)都应该能够向V1/Signupendpoint发送请求,并以与V2客户端相同的状态完成:在Firebase中创建用户帐户

  • 于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,

  • 我是Spring安全的新手,我想用数据库验证用户。我已经用jdbc创建了一个登录页面和一个身份验证提供程序,它检查用户是否存在于数据库中。但是我的代码没有这样做的问题是,它允许所有用户登录!我的代码怎么了?谢谢你的帮助。 这是我的安全会议。xml:

  • 我的Android应用程序中有Firebase身份验证。我的问题是如何在经过身份验证的用户(出现在Firebase控制台的选项卡)和数据库(选项卡)之间建立链接。 我需要通过中出现的将数据库中的数据与中的相关用户链接,并最终发送有关特定的查询,以获取

  • 该应用程序应该接受用户电子邮件和密码,并使用Firebase身份验证作为后端。我使用像素2作为模拟器。每次应用程序处理登录功能时,它都会崩溃。 下面是Java文件和gradle文件 Java文件:

  • 我一直很难找到Google Firebase身份验证背后的SLA。根据托管和实时数据库的服务水平协议,Firebase的每月正常运行时间百分比应至少达到99.95%。它是否适用于身份验证服务?