FirebaseDatabase constructor

FirebaseDatabase({
  1. FirebaseApp? app,
  2. String? databaseURL,
})

Gets an instance of FirebaseDatabase.

If app is specified, its options should include a databaseURL.

Implementation

FirebaseDatabase({this.app, this.databaseURL}) {
  if (_initialized) return;
  _channel.setMethodCallHandler((MethodCall call) async {
    switch (call.method) {
      case 'Event':
        final Event event = Event._(call.arguments);
        _observers[call.arguments['handle']].add(event);
        return null;
      case 'Error':
        final DatabaseError error = DatabaseError._(call.arguments['error']);
        _observers[call.arguments['handle']].addError(error);
        return null;
      case 'DoTransaction':
        final MutableData mutableData =
            MutableData.private(call.arguments['snapshot']);
        final MutableData updated =
            await _transactions[call.arguments['transactionKey']](
                mutableData);
        return <String, dynamic>{'value': updated.value};
      default:
        throw MissingPluginException(
          '${call.method} method not implemented on the Dart side.',
        );
    }
  });
  _initialized = true;
}