This is an unofficial Dart wrapper library for the new Firebase.
You can find more information on how to use Firebase on Getting started page.
Don't forget to setup correct rules for your realtime database and/or storage in Firebase console. Auth has to be also set in the Firebase console if you want to use it. For more info, see next section in this document.
Install the library from the pub or Github.
You must include the original Firebase JavaScript source into your .html
file to be able to use the library.
<script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script>
import 'package:firebase3/firebase.dart' as firebase;
void main() {
firebase.initializeApp(
apiKey: "YourApiKey",
authDomain: "YourAuthDomain",
databaseURL: "YourDatabaseUrl",
storageBucket: "YourStorageBucket");
Database database = firebase.database();
DatabaseReference ref = database.ref("messages");
ref.onValue.listen((e) {
DataSnapshot datasnapshot = e.snapshot;
// Do something with datasnapshot
});
...
}
This library contains also an IO client. You need to create an instance of FirebaseClient
and then use the appropriate method (GET
, PUT
, POST
, DELETE
or PATCH
). See more info on how they work in the official documentation.
It also supports authentication. See the documentation on how to get the auth credentials.
import 'package:firebase3/firebase_io.dart';
void main() {
var credential = ... // Retrieve auth credential
var fbClient = new FirebaseClient(credential); // FirebaseClient.anonymous() is also available
var path = ... // Full path to your database location with .json appended
// GET
var response = await fbClient.get(path);
// DELETE
await fbClient.delete(path);
}
You can find more examples on realtime database, auth and storage in the example folder.
Demo app which uses Google login, realtime database and storage.
You need to ensure a couple of things before tests and examples in this library are run.
Create config.json
file (see config.json.sample
) in lib/src/assets
folder with configuration for your Firebase project.
To run the io tests, you need to provide the service_account.json
file. Go to Settings/Project settings/Service accounts
tab in your project's Firebase console, select the Firebase Admin SDK
and click on the Generate new private key
button, which downloads you a file. Rename the file to service_account.json
and put it into the lib/src/assets
folder.
Warning: Use
config.json
for this package development and testing only.
No special action needed here.
Auth tests and some examples need to have Auth providers correctly set. The following providers need to be enabled in Firebase console, Auth/Sign-in method
section:
- E-mail/password
- Anonymous
Database tests and example need to have public rules to be able to read and write to database. Update your rules in Firebase console, Database/Rules
section to:
{
"rules": {
".read": true,
".write": true
}
}
Warning: At the moment, anybody can read and write to your database. You usually don't want to have this in your production apps. You can find more information on how to setup correct database rules in the official Firebase documentation.
Storage tests and example need to have public rules to be able to read and write to storage. Update your rules in Firebase console, Storage/Rules
section to:
service firebase.storage {
match /b/YOUR_STORAGE_BUCKET_URL/o {
match /{allPaths=**} {
allow read, write;
}
}
}
Warning: At the moment, anybody can read and write to your storage. You usually don't want to have this in your production apps. You can find more information on how to setup correct storage rules in the official Firebase documentation.
This is the first version of the library, the bugs may appear. If you find a bug, please create an issue.