Skip to content

Latest commit

 

History

History
97 lines (81 loc) · 2.42 KB

File metadata and controls

97 lines (81 loc) · 2.42 KB

Project files for the react native firebase tutorial series on youtube.

Install Dependencies

yarn 
yarn start

### Configure config.js - Add your firebase app config keys
### get this from firebase.
export const firebaseConfig = {
  apiKey: "",
  authDomain: "",
  databaseURL: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: ""
};

### Configure clientConfig.js - add your google app api key
export const clientConfig = {
  androidClientId: '',
  behavior: 'web',
  iosClientId: '',
  scopes: ['profile', 'email']
}

# app.js of a sample firestore
https://firebase.google.com/docs/firestore/query-data/queries
https://github.com/iamshaunjp/firebase-firestore-playlist/tree/lesson-9

// deleting data
cross.addEventListener('click', (e) => {
    e.stopPropagation();
    let id = e.target.parentElement.getAttribute('data-id');
    db.collection('cafes').doc(id).delete();
});

// getting data
db.collection('cafes').orderBy('city').get().then(snapshot => {
    snapshot.docs.forEach(doc => {
        renderCafe(doc);
    });
});

db.collection('cafes').where('city', '==', 'manchester').get().then(snapshot => {
    snapshot.docs.forEach(doc => {
        renderCafe(doc);
    });
});

// saving data
form.addEventListener('submit', (e) => {
    e.preventDefault();
    db.collection('cafes').add({
        name: form.name.value,
        city: form.city.value
    });
    form.name.value = '';
    form.city.value = '';
});

// real-time listener
db.collection('cafes').orderBy('city').onSnapshot(snapshot => {
    let changes = snapshot.docChanges();
    changes.forEach(change => {
        console.log(change.doc.data());
        if(change.type == 'added'){
            renderCafe(change.doc);
        } else if (change.type == 'removed'){
            let li = cafeList.querySelector('[data-id=' + change.doc.id + ']');
            cafeList.removeChild(li);
        }
    });
});

// updating records (console demo)
db.collection('cafes').doc('DOgwUvtEQbjZohQNIeMr').update({
    name: 'mario world'
});

db.collection('cafes').doc('DOgwUvtEQbjZohQNIeMr').update({
    city: 'hong kong'
});

// setting data
db.collection('cafes').doc('DOgwUvtEQbjZohQNIeMr').set({
    city: 'hong kong'
});