hectahertz / intro-to-react-native

Materials for my Introduction to React Native Workshop πŸ‘¨πŸ»β€πŸ’»

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Materials for my Introduction to React Native Workshop

Environment setup

Basic requirements

If you just want to run apps through Expo on your physical device, these will be enough:

To run apps in an emulator

If you also want to run apps through Expo in an emulator, you'll need to set it up

Demo App

The Demo App included in the repository is meant to be used as a reference in a 2h workshop to illustrate basic React Native & Firebase concepts.

Reference links

Some other awesome libraries!

  • react-native-dropdownalert
  • react-native-firebase
  • react-native-gifted-chat
  • react-native-image-crop-picker
  • react-native-swiper
  • react-native-vector-icons

Firebase setup for the demo project

  • Create a new app
  • Get your credentials and add them in the adapter
  • Enable email/password login
  • Register some users
user1@demo.com // password
...
user5@demo.com // password
  • Starting DB Shape
{
  "tweets": {
    "-KzIr3nG4akj5U5NvCob": {
      "text": "Tweet!",
      "uid": "lD29Ihlo59TKjZZVmU7pfODAcvG2"
    }
  },
  "users": {
    "lD29Ihlo59TKjZZVmU7pfODAcvG2": {
      "avatar": "https://randomuser.me/api/portraits/men/81.jpg",
      "name": "Ricky Neal",
      "username": "rickyneal"
    }
  }
}
  • Security rules
{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null",
    "tweets": {
      "$tweet": {
        // new messages must have a string text and a string uid
        ".validate": "newData.hasChildren(['text', 'uid']) && newData.child('text').isString() && newData.child('uid').isString()",
        // the uid must match the authenticated user
        "uid": {
           ".validate": "newData.val() === auth.uid"
        },
      }
    }
  }
}

License

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

About

Materials for my Introduction to React Native Workshop πŸ‘¨πŸ»β€πŸ’»


Languages

Language:JavaScript 98.6%Language:HTML 1.4%