- Initialized
npm
project withpackage.json
file. See: Getting started withnpm
. express
installed as project dependency.- Entry page (i.e.
server.js
) present in the project root.
project-root
npm
project with package.json
file. See: Getting started with npm
.express
installed as project dependency.server.js
) present in the project root.project-root
.send()
. It dynamically sets Content-Type
headers to match the data it sends..json()
or .send()
.
.json()
is likely less confusing.json()
uses .send()
under the hood so the resulting HTTP headers are the same./** | |
* get_firestore_collection_as_json.js | |
* | |
* This code is a "node script" used to fetch all documents from a Firestore collection, | |
* either in "the cloud" or the emulator, and write them to a file as JSON. | |
* | |
* The script is a "client app", so it logs in with Firebase Auth using email/password from the variable USER1. | |
* This USER1 user (the.admin.guy@test.com) must exist in your Firebase project and have read access | |
* to the collection(s) you are populating. You can create that account via | |
* Firebase Console >> Authentication. |
#!/bin/bash | |
red=$(tput setaf 1) | |
green=$(tput setaf 2) | |
blue=$(tput setaf 6) | |
yellow=$(tput setaf 3) | |
reset=$(tput sgr0) | |
ROOT=$(pwd) | |
echo "" |
/** | |
* cleanup_firestore.js | |
* | |
* This code is a "node script" used to delete all documents from a Firestore | |
* collection that are older than a given date. This script can run against | |
* "the cloud" or the emulator. | |
* | |
* The jump point for the script is this line in main(): | |
* | |
* await deleteDocs('orders', 'closedDate', '<', new Date('2021/08/31')) |
import React, {createContext, useEffect, useState} from 'react'; | |
import auth from '@react-native-firebase/auth'; // or from 'firebase/auth'; | |
import Loading from '../components/Loading'; | |
import {myFirestore} from '../common/firebase.js'; | |
export const AuthContext = createContext({}); | |
export const AuthProvider = (props) => { |
/** | |
* load_json_to_firstore.js | |
* | |
* This code is a "node script" used to load data into your Firestore database, either in "the cloud" or the emulator. | |
* | |
* The script is a "client app", so it logs in with Firebase Auth using email/password from the variable USER1. | |
* | |
* The USER1 user (the.admin.guy@test.com) must exist in your Firebase project and have write access | |
* to the collection(s) you are populating. You can create that account via Firebase Console >> Authentication. | |
* |
/** | |
* firestore_add_field_to_all_docs_in_collection.js | |
* | |
* This script is assumed to live in an existing Javascript project that has its own package.json. | |
* I store this script in <PROJECT_ROOT>/tools/cleanup/. | |
* | |
* To use: | |
* 1. Import the 'firebase' and 'esm' NPM modules to your project (Run the command: `npm install firebase esm`) | |
* 2. Edit the data for USER1 and FIREBASE_CONFIG, then adjust parameters in `main` for the call to `visitDocs`. | |
* |
/* | |
* This file is used to dynamically import and export functions from the `fs`, `http`, `sched`, and `storage` directories. | |
* The exported functions are then used in the `index.ts` file to define the Cloud Functions. | |
* | |
* Only files with the extension `.f.ts` are imported and exported (well, `.f.js` after `tsc` has run). | |
* | |
* Concept for this is inspired by https://codeburst.io/organizing-your-firebase-cloud-functions-67dc17b3b0da | |
* -- Thank you @TarikHuber !! | |
*/ | |
import * as fs from 'fs'; |
// This code fails with the error described in: | |
// https://github.com/googleapis/google-cloud-node/issues/4361 | |
// | |
// The Node/JS version of the SDK currently does not support adding LogEvent policies. | |
// | |
// | |
// To run this code: | |
// - save to a file (e.g. "create-alerts.js") | |
// - be logged into your gcloud account (`gcloud auth login`) | |
// - set the env var `PROJ_ID` with your project ID |