- Notifications
You must be signed in to change notification settings - Fork951
firebase/firebase-js-sdk
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The Firebase JavaScript SDK implements the client-side libraries used byapplications using Firebase services. This SDK is distributed via:
To get started using Firebase, seeAdd Firebase to your JavaScript Project.
Version 9 has a redesigned API that supports tree-shaking. Read theUpgrade Guide to learn more.
Please seeEnvironment Support.
Before you can start working on the Firebase JS SDK, you need to have Node.jsinstalled on your machine. As of April 19th, 2024 the team has been testing with Node.js version20.12.2
, but the required version of Node.js may change as we update our dependencies.
To download Node.js visithttps://nodejs.org/en/download/.
NOTE: You can use a tool likeNVM
orN
to install and manage multiple node versions
In addition to Node.js we useyarn
to facilitate multi package development.
To installyarn
follow the instructions listed on their website:https://yarnpkg.com/en/docs/install
This repo currently supports building with yarn1.x
. For instance, after installing yarn, run
$ yarnset version 1.22.11
The closure compiler requires a modern Java installation. Java 11+ should be installed:https://www.oracle.com/java/technologies/downloads/#java11
You can verify your setup by running the following commands in your terminal:
$ node -v$ yarn -v$ java -version
Yournode
version should be20.12.2
, youryarn
version shouldbe between1.0.0
and1.22.11
, and yourjava
version should be11.0
or greater.
NOTE: We will update the documentation as new versions are required, howeverfor continuing development on the SDK, staying up to date on the stable versionsof these packages is advised
Once you have Node.js andyarn
installed on your machine and have validatedthat you are running the proper version, you can set up the development environmentby running the following at the root of the SDK:
$ yarn
Once you have installed all the dependencies, you can build the entire SDK byrunning the following command the root of the SDK:
$ yarn build
A production project is required to test the Firebase JS SDK. You can create anew project by visiting theFirebase Console.
Visit the "Project Overview" and select "Add app" under your project name. Register the app with anickname and click through the remaining steps. Without performing this step, you will encounterthe error in the test setup:
FirebaseError: There are no WEB apps associated with this Firebase project
Visit the "Firestore Database" section of the console and create a Cloud Firestoredatabase. When prompted to select the set of initial security rules, selectany option (e.g. "Start in Production Mode") since these permission settingswill be overwritten below.
Visit the "Realtime Database" section of the console and create a realtimedatabase. When prompted to select the set of initial security rules, selectany option (e.g. "Start in Locked Mode") since these permission settingswill be overwritten below.
Visit the "Storage" section of the console and create a storage bucket. Inorder to run the tests, you will need to update your bucket's CORS rules.
- Create a new file called
cors.json
with the contents:
[ {"origin": ["http://localhost:8089"],"method": ["GET"],"maxAgeSeconds":3600 }]
- Install
gsutil
fromhttps://cloud.google.com/storage/docs/gsutil_install - You will need to login if this is your first time using
gsutil
. Rungcloud auth login
and follow the instructions to login. - Run
gsutil cors set cors.json gs://<your-cloud-storage-bucket>
For more information, visithttps://firebase.google.com/docs/storage/web/download-files#cors_configuration
Then, make sure you have anonymous sign-in provider enabled:
Visit the authentication config in your project and enable theAnonymous
sign-in provider to complete your project config.
The tests need to be configured to use the Firebase production project that youcreated in the "Test Setup" section above. To do this, run theyarn test:setup
command, as follows:
# Select the Firebase project via the text-based UI. This will run tools/config.js# and deploy from config/ to your Firebase project.$ yarn test:setup# Specify the Firebase project via the command-line arguments.$ yarn test:setup --projectId=<test_firebase_project_id>
If you see an error like
HTTP Error: 404, Project '<test_firebase_project_id>' does not exist.
then make sure that you have created the database as specified in the "FirestoreDatabase Setup" section above.
Each of the directories in theintegration
directory as well as thepackages
directory have their own test suites. You will need to build the SDK beforerunning tests. Test suites can be run all together by running the followingcommand at the root of the package:
$ yarntest
In addition, you can run any of the tests individually by runningyarn test
inan individual package directory.
The Firebase JS SDK is built with a series of individual packages that are allcontained in this repository. Development is coordinated viayarnworkspaces andLerna (a monorepo management tool).
Each package in thepackages
directory, constitute a piece of ourimplementation. The SDK is built via a combination of all of these packageswhich are published under thefirebase
scope on NPM.
Please be sure your product's package has been built before proceeding any further. (If you haven't built this repo before, make sure to runyarn build
at the root)In order to manually test your SDK changes locally, you must useyarn link:
$cd packages/firebase$ yarn link# initialize the linking to the other folder$cd ../<my-product># Example: $ cd ../firestore$ yarn link# link your product to make it available elsewhere$cd<my-test-app-dir># cd into your personal project directory$ yarn link firebase @firebase/<my-product># tell yarn to use the locally built firebase SDK instead
This will create a symlink and point your<my-test-app-dir>
to the locally built version of the firebase SDK.
Each package in thepackages
directory exposes adev
script. This scriptwill set up a watcher for development on the individual piece of the SDK. Inaddition, there is a top leveldev
script that can be run to start all of thewatch tasks as well as a sandbox server.
You can run the dev script by running the following at the root of the package:
$ yarn dev
As part of this repo, we use the NPM packagehusky
toimplement git hooks. We leverage the prepush hook to do two things:
- Automated code styling (using
prettier
) - Automated LICENSE header insertion
SeeContributing for more information on contributing to the FirebaseJavaScript SDK.
Cross-browser Testing Platform and Open Source <3 Provided bySauce Labs
About
Firebase Javascript SDK
Topics
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.