我已与以下用户手动导入数据库的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);
});
};
当用户通过电子邮件和密码进行身份验证时,如何从数据库中检索用户的详细信息?
直接从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
使用当前数据库结构,您可以通过执行以下操作在onLogin
方法中获取用户数据:
firebase
.database()
.ref('users')
.orderByChild('emailAddress')
.equalTo(email)
.once('value', snap => console.log(snap.val()));
获取当前用户数据。
但是,您不应该在users
节点中使用用户的名字作为键,当您有两个名为Ernest的用户时会发生什么?它将中断(您将删除第一个Ernest用户)。而是考虑使用AuthUID作为密钥,保证它是唯一的并且绑定用户。
身份验证子系统,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%。它是否适用于身份验证服务?