aor-firebase-client
An admin-on-rest client for Firebase.
Installation
npm install aor-firebase-client --save
Usage
<Admin>
component
As a parameter of the // in src/App.js;;; const firebaseConfig = apiKey: '<your-api-key>' authDomain: '<your-auth-domain>' databaseURL: '<your-database-url>' storageBucket: '<your-storage-bucket>' messagingSenderId: '<your-sender-id>'; const clientOptions = timestampFieldNames: createdAt: 'createdAt' updatedAt: 'updatedAt' trackedResources: name: 'posts' // The name reference to be used in all other places in AOR path: 'blog' // The path in the database. If missing will use the name public: true uploadFields: // The string name of the field 'contacts' // A single string assumes path and name as equal, non private and without upload fields const App = <Admin restClient= > <Resource name="posts" list=PostList /> <Resource name="contacts" list=ContactList /> </Admin>; ;
Auth Client
The package lets you manage the login/logout process implementing an optional authClient
prop of the Admin
component (see documentation).
It stores a firebaseToken
in localStorage
.
The configuration options available are:
-
userProfilePath
: The database path to user profiles. Defaults to/users/
. Mind the slashes. -
userAdminProp
: The database key to point if a user has admin powers. Defaults toisAdmin
The final path is: {userProfilePath}/{uid}/{userAdminProp}
-
localStorageTokenName
: Local storage identifier to hold the firebase client token, defaults toaorFirebaseClientToken
-
handleAuthStateChange
: A way to override the auth process
// in src/App.js...; const firebaseConfig = apiKey: '<your-api-key>' authDomain: '<your-auth-domain>' databaseURL: '<your-database-url>' storageBucket: '<your-storage-bucket>' messagingSenderId: '<your-sender-id>'; const authConfig = userProfilePath: 'profiles' userAdminProp: 'superuser' const App = <Admin restClient= authClient=> <Resource name="posts" list=PostList /> </Admin>; ;
Note: AuthClient does require using the RestClient in order to initialize firebase. Alternatively, you can opt to not use the RestClient and initialize firebase yourself like this:
;; const firebaseConfig = apiKey: '<your-api-key>' authDomain: '<your-auth-domain>' databaseURL: '<your-database-url>' storageBucket: '<your-storage-bucket>' messagingSenderId: '<your-sender-id>'; firebase; const App = <Admin authClient=> <Resource name="posts" list=PostList /> </Admin>; ;
Changelog
v0.0.10
- Documentation fix for authClient #17
- Handle empty collections #18
- Build lib on prepare #19
- Thanks to @grahamlyus who worked a LOT this month to make this release possible! Kudos!
v0.0.9
- Fixes
v0.0.8
- Fix it saving on the wrong path #7
- Fix README links
v0.0.7
- Typos, tests and fixes #6
v0.0.6
- README Fixes #4
v0.0.4
- CI configured
v0.0.3
v0.0.1
- Initial commit, lots of to dos
License
This library is licensed under the MIT Licence.