firebase - 如何集成 firebase-auth 来验证电话号码
问题描述
我已经创建了电话号码验证屏幕,现在我想集成 firebase-auth 以通过 OTP 验证电话号码。但我不知道该怎么做,请帮助我。
我试图找到教程和示例,但这些对我没有帮助。
电话验证屏幕
import React from 'react';
import {StyleSheet, View, TextInput, TouchableOpacity, Text, KeyboardAvoidingView, BackHandler, Alert, AsyncStorage, ToastAndroid } from 'react-native';
import HandleBack from '../component/backHandler';
import * as firebase from 'firebase';
class BuyerVerify extends React.Component{
componentDidMount(){
this.getData();
};
onBack = () => {
return true;
};
getData = () => {
const getNumber = async () => {
let number = '';
try {
number = await AsyncStorage.getItem('number');
} catch (error) {
// Error retrieving data
console.log(error.message);
}
//return number;
alert(number);
}
getNumber();
};
render(){
return(
<HandleBack onBack={this.onBack}>
<View style={styles.root}>
<View style={styles.outer}>
<View style={styles.inner}>
<KeyboardAvoidingView style={styles.container}>
<TextInput style={styles.input}
placeholder="Enter OTP"
placeholderTextColor="#939eaf"
keyboardType="phone-pad"
/>
<TouchableOpacity style={styles.button1Container}>
<Text style={styles.buttonText}>
Verify Buyer
</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.button2Container} onPress={()=> this.props.navigation.navigate('Main')}>
<Text style={styles.buttonText}>
Change number
</Text>
</TouchableOpacity>
</KeyboardAvoidingView>
</View>
</View>
</View>
</HandleBack>
);
}
}
export default BuyerVerify;
我想使用 firebase 通过 OTP 验证电话号码。
解决方案
从 Firebase 的 PhoneAuthProvider 接口:
// 'recaptcha-container' is the ID of an element in the DOM.
var applicationVerifier = new firebase.auth.RecaptchaVerifier(
'recaptcha-container');
var provider = new firebase.auth.PhoneAuthProvider();
provider.verifyPhoneNumber('+16505550101', applicationVerifier)
.then(function(verificationId) {
var verificationCode = window.prompt('Please enter the verification ' +
'code that was sent to your mobile device.');
return firebase.auth.PhoneAuthProvider.credential(verificationId,
verificationCode);
})
.then(function(phoneCredential) {
return firebase.auth().signInWithCredential(phoneCredential);
});
推荐阅读
- mysql - MySQL 5.5 - 选择记录更改的行
- compiler-construction - 如何使用 JAVACC 中的空词作为标记?
- asp.net-mvc - 在 ICollections 上使用 Html.NameFor
- xml - Ejabberd 和 Python3
- android - Admob 填充率从 ~80% 降至 0%
- java - Hibernate 保存额外的行而不是更新并且需要两次保存
- javascript - 使用 Vanilla JS 和 JSON 文件填充选择元素
- html - 如何根据设备大小操作 iframe css
- html - 如何使css网格只出现在手机上而不出现在桌面上
- ruby-on-rails - 如何在 routes.rb 文件中获取路径,即我当前 api 的路径