【发布时间】:2020-10-04 21:30:35
【问题描述】:
我正在使用 expo 构建我的第一个 react 原生应用程序,到目前为止效果很好,但我只对一个问题感到沮丧:
成功登录后,我的应用没有重定向到“个人资料”。以下是我使用 firebase 处理登录/注册的方式:
class Login extends React.Component {
state = {
email: '',
password: ''
}
handleLogin = () => {
const { email, password } = this.state
Firebase.auth()
.signInWithEmailAndPassword(email, password)
.then(() => this.props.navigation.navigate('Profile'))
.catch(error => console.log(error))
}
render() {
return (
<View style={styles.container}>
<Text style={styles.headerText}>traderank</Text>
<TextInput
style={styles.inputBox}
value={this.state.email}
onChangeText={email => this.setState({ email })}
placeholder='email'
autoCapitalize='none'
/>
<TextInput
style={styles.inputBox}
value={this.state.password}
onChangeText={password => this.setState({ password })}
placeholder='password'
secureTextEntry={true}
/>
<TouchableOpacity
style={styles.button}
onPress={this.handleLogin}>
<Text style={styles.buttonText}>login</Text>
</TouchableOpacity>
<Button
title="no account? sign up"
onPress={() => this.props.navigation.navigate('Signup')}/>
</View>
)
}
}
注册同这个handleAuth函数:
handleSignUp = () => {
const { email, password } = this.state
Firebase.auth()
.createUserWithEmailAndPassword(email, password)
.then(() => this.props.navigation.navigate('Profile'))
.catch(error => console.log(error))
}
1)我知道这不是我的导航器的问题,因为我可以通过单击按钮在登录/注册之间切换。
2)我知道这不是firebase的问题,因为我可以创建一个新用户并在firebase控制台中看到该用户
3)点击登录时出现此错误:
错误:创建存储目录失败。Error Domain=NSCocoaErrorDomain Code=4 "文件“RCTAsyncLocalStorage”不存在。"
UserInfo={NSFilePath=/Users/me/Library/Developer/CoreSimulator/Devices/264989F0-2165-4E91-8EA3-48316590DE5A/data/Containers/Data/Application/A49D7AF5-C660-4292-9576-A986C3F97C38/Documents /ExponentExperienceData/%40anonymous%project-numbers/RCTAsyncLocalStorage, NSUnderlyingError=0x600000778180
{Error Domain=NSPOSIXErrorDomain Code=2 "没有这样的文件或目录"}}
当我点击注册时它也应该重定向,但是当我创建一个新用户时,我看到这个登录到我的终端[当我点击注册时正在创建用户,我在 firebase 控制台中看到用户]:
创建存储目录失败。Error Domain=NSCocoaErrorDomain Code=4 "文件“RCTAsyncLocalStorage”不存在。"
在这两种情况下,RCTAsyncLocalStorage 似乎都存在问题。通常我可以用谷歌搜索错误并找出它,但在这方面没有找到太多。我正在使用 react native expo ~39.0.2,在 iPhone 11 (13.7) 上运行它。
提前致谢
【问题讨论】:
-
你能显示你的登录屏幕的测试吗?
-
好的,我一到家就会更新!
-
@WenW 更新为完全登录
-
我的登录屏幕看起来不错。您是否有条件地在导航器中呈现个人资料页面?类似于这里正在做什么? reactnavigation.org/docs/auth-flow
-
@WenW 还没有条件渲染。我应该那样做吗?
标签: ios firebase react-native firebase-authentication