# Creating a sign-in form We can now get onto allowing the user to login with their email and password. First off we need to create a dummy user for testing. This can be done via the Firebase console on the 'Authentication' tab. Lets go ahead and create one now: ![Add new user](assets/add-user.jpg) ## Handling user input React Native provides us with a [`TextInput`](https://facebook.github.io/react-native/docs/textinput.html) component, which renders the web equivalent of an `input` box in our app. `TextInput` components are 'uncontrolled' meaning we have to explicitly give it a value and handle updates the user enters. We're going to do this via component state, however you could also do this via our Redux store which is an option other React developers would go down. ```jsx // src/screens/unauthenticated/Login.js import React, { Component } from 'react'; import { View, TextInput } from 'react-native'; class Login extends Component { static navigationOptions = { title: 'Login', headerStyle: { backgroundColor: '#E6853E', }, headerTintColor: '#fff', }; constructor() { super(); this.state = { email: '', password: '', }; } _updateEmail = email => { this.setState({ email }); }; _updatePassword = password => { this.setState({ password }); }; render() { return ( ); } } export default Login; ``` If you reload your app, you will see two plain `TextInput` boxes which can accept input. As these are updated, the `onChangeText` prop is triggered which then updates state for that specific value. The inputs then individually update whenever their `value` from state changes: ![TextInput Changes](assets/textinput-update.gif =300x\*) > If you want to hide your users password, use the `secureTextEntry` prop. ## Communicating with Firebase Now we've got our users input readily available in state, we can use the values to send to Firebase! First off we need a trigger to do this: ```jsx // src/screens/unauthenticated/Login.js import React, { Component } from 'react'; import { View, TextInput, Button } from 'react-native'; ... _signIn = () => { }; render() { return (