【发布时间】:2020-04-01 19:55:56
【问题描述】:
我对@987654324@ 和firebase 非常陌生,我正在尝试设置Passwordless Auth。
我已经写的代码:
import React, {Component} from 'react';
import {View, TextInput, Button} from 'react-native';
import auth from '@react-native-firebase/auth';
import AsyncStorage from '@react-native-community/async-storage';
class App extends Component {
constructor(props) {
super(props);
this.state = {
email: '',
emailSent: false,
};
}
setEmail = async email => {
try {
await AsyncStorage.setItem('emailLink', `${email}`);
} catch (e) {
// save error
}
console.log('Email is set');
};
getEmail = async () => {
try {
var value = await AsyncStorage.getItem('emailLink');
} catch (e) {
// read error
}
console.log('Got email: ', value);
};
sendEmailLink() {
var actionCodeSettings = {
// The URL to redirect to for sign-in completion. This is also the deep
// link for mobile redirects. The domain (www.example.com) for this URL
// must be whitelisted in the Firebase Console.
url: 'https://passless.page.link/85EH',
iOS: {
bundleId: 'org.reactjs.native.example.passless',
},
android: {
packageName: 'com.passless_auth',
installApp: true,
minimumVersion: '12',
},
// This must be true.
handleCodeInApp: true,
};
auth()
.sendSignInLinkToEmail(`${this.state.email}`, actionCodeSettings)
.then(() => console.log('email is sent'))
.then(() => this.setEmail(`${this.state.email}`))
.catch(err => console.log('error sending email', err));
}
render() {
return (
<View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
<TextInput
placeholder="email"
onChangeText={email => this.setState({email: email})}
/>
<Button title="SignUp/LogIn" onPress={() => this.sendEmailLink()} />
</View>
);
}
}
export default App;
我已成功收到电子邮件,但链接无效。
电子邮件中的链接会在浏览器而不是应用程序中打开。我应该如何解决这个问题??
我认为我已正确设置控制台中的链接,但我不确定我的代码。
我如何进一步进步? 非常感谢您的帮助。
PS 我正在使用react-native-firebase v6
【问题讨论】:
标签: javascript firebase react-native firebase-authentication react-native-firebase