在 React Native 中将 Touch ID 与 Firebase Auth 集成
Integrating Touch ID with Firebase Auth in React Native
我是 React native 的新手,但我已经创建了一个使用 react-native-firebase 包(基于 https://github.com/faahmad/react-native-firebase-auth)的注册/登录,我想合并 touch id 以允许用户登录,但我无法在网上找到任何示例(使用 firebase 进行原生反应)。我看过包 react-native-fingerprint-scanner 和 react-native-touch-id,它们可以直接实现我只是不知道如何将 firebase auth 和 touch id 结合在一起。对此的任何帮助表示赞赏。
谢谢
这只是一个想法,尚未作为 'actual code' 实施,但是...这是我将如何处理它的两分钱:
用户注册后,您可以使用 AsyncStorage, SQLite 或其他方式存储他们的电子邮件和密码。然后在用户设置页面中添加 Login with fingerprint
作为一项功能。从那里,一旦用户决定再次登录,您可以:
1- 使用 react-native-fingerprint-scanner
给你的承诺。
2- 从您选择的数据库中获取电子邮件和密码。
3- 使用该数据通过 firebase 进行身份验证并登录。
看起来像这样:
handleLogin() {
FingerprintScanner
.authenticate({ description: 'Scan your fingerprint to login' })
.then(() => {
const sql = "select email, password from user";
db.runQuery(sql, function(data) { // this is a made-up function
const { email, pasword } = data
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.then(() => /*navigate to main page once authenticated*/)
.catch(error => this.setState({ errorMessage: error.message
});
})
.catch(console.error);
}
还有改进的余地,但这应该适合您。希望能帮助到你。
我是 React native 的新手,但我已经创建了一个使用 react-native-firebase 包(基于 https://github.com/faahmad/react-native-firebase-auth)的注册/登录,我想合并 touch id 以允许用户登录,但我无法在网上找到任何示例(使用 firebase 进行原生反应)。我看过包 react-native-fingerprint-scanner 和 react-native-touch-id,它们可以直接实现我只是不知道如何将 firebase auth 和 touch id 结合在一起。对此的任何帮助表示赞赏。
谢谢
这只是一个想法,尚未作为 'actual code' 实施,但是...这是我将如何处理它的两分钱:
用户注册后,您可以使用 AsyncStorage, SQLite 或其他方式存储他们的电子邮件和密码。然后在用户设置页面中添加 Login with fingerprint
作为一项功能。从那里,一旦用户决定再次登录,您可以:
1- 使用 react-native-fingerprint-scanner
给你的承诺。
2- 从您选择的数据库中获取电子邮件和密码。
3- 使用该数据通过 firebase 进行身份验证并登录。
看起来像这样:
handleLogin() {
FingerprintScanner
.authenticate({ description: 'Scan your fingerprint to login' })
.then(() => {
const sql = "select email, password from user";
db.runQuery(sql, function(data) { // this is a made-up function
const { email, pasword } = data
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.then(() => /*navigate to main page once authenticated*/)
.catch(error => this.setState({ errorMessage: error.message
});
})
.catch(console.error);
}
还有改进的余地,但这应该适合您。希望能帮助到你。