Thank you for contributing to the Firebase community!
- Have a usage question?
- Think you found a bug?
- Have a feature request?
- Want to submit a pull request?
- Need to get set up locally?
We get lots of those and we love helping you, but GitHub is not the best place for them. Issues which just ask about usage will be closed. Here are some resources to get help:
- Start with the quickstart
- Go through the guide
- Read the full API reference
- Try out some examples
If the official documentation doesn't help, try asking a question on the Firebase Google Group or one of our other official support channels.
Please avoid double posting across multiple channels!
Yeah, we're definitely not perfect!
Search through old issues before submitting a new issue as your question may have already been answered.
If your issue appears to be a bug, and hasn't been reported, open a new issue. Please use the provided bug report template and include a minimal repro.
If you are up to the challenge, submit a pull request with a fix!
Great, we love hearing how we can improve our products! After making sure someone hasn't already requested the feature in the existing issues, go ahead and open a new issue. Feel free to remove the bug report template and instead provide an explanation of your feature request. Provide code samples if applicable. Try to think about what it will allow you to do that you can't do today? How will it make current workarounds straightforward? What potential bugs and edge cases does it help to avoid?
Sweet, we'd love to accept your contribution! Open a new pull request and fill out the provided form.
If you want to implement a new feature, please open an issue with a proposal first so that we can figure out if the feature makes sense and how it will work.
Make sure your changes pass our linter and the tests all pass on your local machine. We've hooked up this repo with continuous integration to double check those things for you.
Most non-trivial changes should include some extra test coverage. If you aren't sure how to add tests, feel free to submit regardless and ask us for some advice.
Finally, you will need to sign our Contributor License Agreement before we can accept your pull request.
If you'd like to contribute to AngularFire, you'll need to do the following to get your environment set up.
$ git clone https://github.com/firebase/angularfire.git
$ cd angularfire # go to the angularfire directory
$ npm install -g grunt-cli # globally install grunt task runner
$ npm install # install local npm build / test dependencies
$ grunt install # install Selenium server for end-to-end tests
$ grunt # lint, build, and test
$ grunt build # lint and build
$ grunt test # run unit and e2e tests
$ grunt test:unit # run unit tests
$ grunt test:e2e # run e2e tests (via Protractor)
$ grunt watch # lint, build, and test whenever source files change
The output files - angularfire.js
and angularfire.min.js
- are written to the /dist/
directory.