Get up and running with Nhost and React Native
In this quickstart guide, we’ll demonstrate how to build a simple To-Do feature using Nhost and React Native.
Throughout this guide, we’ll utilize the @nhost/react-native-template, which comes pre-configured with authentication and storage capabilities provided by Nhost.
Before starting this quickstart, ensure that your environment is set up to work with React Native. Follow the setup guide available on the official React Native website.
Create Nhost Project
Create your project through the Nhost Dashboard.
Setup Database
Navigate to the SQL Editor of the database and run the following SQL to create a new table todos
.
Track this
is enabledCreate Todos Table
Configure the todos table permissions
To set permissions for the new todos
table, select the table, click on the ...
to open the actions dialog,
then click on Edit Permissions. Set the following permissions for the user
role:
Insert
- Set
Row insert permissions
toWithout any checks
- Select all columns except
user_id
onColumn insert permissions
- Add a new
Column preset
and setColumn Name
touser_id
andColumn Value
toX-Hasura-User-Id
- Save
- Set
Insert Permissions
Select
- Set
Row select permissions
toWith custom check
and fill in the following rule:- Set
Where
totodos.user_id
- Set the operator to
_eq
- Set the value to
X-Hasura-User-Id
- Set
- Select all columns except
user_id
onColumn select permissions
- Save
- Set
Select Permissions
Update
- Set
Row update permissions
toWith custom check
and fill in the following rule:- Set
Where
totodos.user_id
- Set the operator to
_eq
- Set the value to
X-Hasura-User-Id
- Set
- Select all columns except
user_id
onColumn select permissions
- Save
- Set
Update permissions
Delete
- Set
Row delete permissions
toWith custom check
and fill in the following rule:- Set
Where
totodos.user_id
- Set the operator to
_eq
- Set the value to
X-Hasura-User-Id
- Set
- Save
- Set
Delete permissions
Configure permissions to enable user file uploads
To enable file uploads by users, set the permissions as follows:
-
Edit the files table permissions
- Navigate to the files table within the Database tab
- Click on the three dots (…) next to the files table
- Click on Edit Permissions
-
Modify the
Insert
permission for theuser
role:- Set
Row insert permissions
toWithout any checks
- Select all columns on
Column insert permissions
- Save
- Set
Insert Permissions
Select
- Set
Row select permissions
toWith custom check
and fill in the following rule:- Set
Where
tofiles.uploaded_by_user_id
- Set the operator to
_eq
- Set the value to
X-Hasura-User-Id
- Set
- Select all columns on
Column select permissions
- Save
- Set
Select permissions
Bootstrap your React Native app
Intialize a new React Native project using the template @nhost/react-native-template
Connect your React Native app to the Nhost project
Copy your project’s <subdomain>
and <region>
values available on the dashboard overview
Add the GraphQL queries
Create a new file src/graphql/todos.ts
that will expose the graphql queries needed to list
, add
and delete
To-Do’s.
Add a form to insert a To-Do
Add the Todo component and the screen to list all the todos
Reference the new Todos components in the Drawer Navigator
Run the app on the emulator
- Open a terminal and start the metro bundler
- Open a new terminal and run the app on Android
Demo
Next Steps: enabling Google and Apple Sign-In
The template is preconfigured to allow users to sign in with Google and Apple. To enable this feature, follow these steps:
- Navigate to your Nhost project’s Sign-In Methods settings.
- Enable Google and/or Apple sign-in.
- Fill in the necessary credentials.
For detailed instructions on generating the required credentials, refer to the following guides: