Skip to content

Releases: invertase/react-native-firebase

v3.0.6

31 Oct 10:48
Compare
Choose a tag to compare

v3.0.6 Changelog

Firestore

  • Use milliseconds for timestamps to resolve timezone issues across both iOS and Android

Database

  • Remove listener in reverse order on the same path does not work properly #532

Auth

  • [ios] Reload the user after updating their profile and email address as the native SDK is not doing it automatically
  • [android] Correctly populate email field for password providers
  • [android] Cache auto-verified phone credential for use on the native side #464
  • [android] Correctly populate phone number field for phone auth providers
  • [android] Incorrectly removing all auth listeners when using verifyPhoneNumber
  • [js] Introduce experimental onUserChanged method to simplify integration with React Native

Messaging

  • [ios] Move registerForRemoteNotification to the main thread to prevent XCode 9 warnings

Misc

  • [ios] Centralise event sending to ensure all events validate the bridge before sending
  • Update typings to allow null values to clear Analytics values @YousefED

v3.0.5

23 Oct 17:17
Compare
Choose a tag to compare

v3.0.5 Changelog

Firestore

  • [android] Further fix to correctly handle timezone information for JS -> native transformation #533

Database

  • Fix issue with orderByChild and limitToLast being used together #521
  • Persistence not passed to Realtime Database #529

Auth

  • [ios] Reload the user when an account is unlinked as the native SDK is not doing it automatically

Admob

  • Tried to register two views with the same name RNFirebaseAdMobBanner #497

v3.0.4

18 Oct 13:37
Compare
Choose a tag to compare

v3.0.4 Changelog

Firestore

  • Fix metadata not defined error in DocumentSnapshot #499 @DavidKuennen
  • Correctly handle undefined values
  • Correctly handle timezone information contained in Timestamps

Database

  • Protect against calling off on a non-existent ref
  • Fix an issue with strict mode violations

Auth

  • Update ConfirmationResult #501 @benschell
  • Update providerId to match official SDK. Please note, if you are manually specifying a providerId, these are now facebook.com, google.com, github.com, twitter.com

v3.0.3

12 Oct 08:50
Compare
Choose a tag to compare

v3.0.3 Changelog

Firestore

  • Added FieldValue.serverTimestamp() and FieldValue.delete() support #474
  • Better support for Date, DocumentReference and GeoPoint fields
  • Bring DocumentChange in line with Web SDK #484

Misc

  • [ios] Explicitly set requiresMainQueueSetup where required: #491
  • [ios] Fix issues with synthesized bridge #233

v3.0.1

07 Oct 00:03
Compare
Choose a tag to compare

v3.0.1 CHANGE LOG

Setup

react-native link is now supported, which means the following:

  • [ios] You can choose not to have React, Yoga, react-native-firebase, etc installed as pods. You do still need to have the Firebase SDKs installed as Pods as recommended by Google.
  • [android] A couple of the manual steps are now automated for you

Check out the new installation guides:

Utils

We've added a new module to contain everything non-firebase specific, things that relate to the library (such as configuration) or using firebase on react native and misc debug helpers.

Accessing the new module can be done via firebase.utils().X or firebase.utils.X for statics.

Play Services

  • [android] Google Play Services checks and utils added. By default an error or warning that looks like these will now display if your android device has a Play Services issue. You can configure this using the api/methods below. @Salakar
  • firebase.utils().playServicesAvailability returns an object of type GoogleApiAvailabilityType @Salakar
  • setter firebase.utils().errorOnMissingPlayServices set to true or false. Defaults to true, with this enabled a red box Play Services error will appear if the device you're developing your android app on has failed the Play Services checks. You should set this to false in your prod app and handle Play Services checks yourself using the provided apis on utils(). @Salakar
  • setter firebase.utils().promptOnMissingPlayServices set to true or false. Defaults to true, with this enabled if a Play Services issue is detected it will automatically attempt to prompt you on screen to update the Play Services app (i.e update dialog with update button) or whatever the possible resolution is. Set to false to disable. @Salakar
  • various methods to handle manual Play Services checks for your end users: promptForPlayServices(), resolutionForPlayServices(), makePlayServicesAvailable() @Salakar

The old docs for Google Play Services api's can be found here - they generally still stand except for the api now being as above.

See https://github.com/invertase/react-native-firebase/blob/master/lib/modules/utils/index.js for any other undocumented methods.

iOS

Database

Firestore

Misc

  • added missing new app function typings - @bm-software 62ab50e
  • lots of documentation updates, won't go into the details, mostly improvements on the install process / react native link support etc - @chrisbianca @Ehesp @Salakar

A note on docs

We're aware there's a lot of missing docs on the current site and this something we're actively working on improving. We have a brand new work in progress site, it has guides, full api references and more, let us know your thoughts (on discord): https://invertase-default.firebaseapp.com/docs/v3.0.*/getting-started - this is a temporary url. If you'd like to get involved and contribute to the site then please let us know (also on discord).


v3 change log added below for completeness.


v3.0.0 CHANGE LOG.

This release is mainly aimed at adding firebase 'core' functionality, adding phone auth functionality and also a first pass at Cloud Firestore support. There's also been further adjustments to bring the modules in line with the web sdk api. Additionally there's been a lot of internal code improvements aimed at performance and improving QoL for module development.

Whilst every effort has been taken to document all breaking changes there may still be a chance that some undocumented breaking changes have snuck in as this was probably one of the largest releases to date code wise. 🙈 If you come across one then please let us know, we can document it.

Migration guide

See: http://invertase.link/v2-v3

Core

This release introduces full firebase core support. This means multiple firebase apps are now supported both in JS and native android/ios code (initialise additional apps on either end to have the app available in both automatically).

  • #f03c15 [breaking] new RNFirebase() is no longer supported. See below for information about app initialisation.
  • #f03c15 [deprecation] initializeApp() for apps that are already initialised natively (i.e. the default app initialised via google-services plist/json) will now log a deprecation warning.
    • As these apps are already initialised natively there's no need to call initializeApp in your JS code. For now, calling it will just return the app that's already internally initialised - in a future version this will throw an already initialized exception.
    • Accessing apps can now be done the same way as the web sdk, simply call firebase.app() to get the default app, or with the name of specific app as the first arg, e.g. const meow = firebase.app('catsApp'); to get a specific app.
  • FirebaseApp.extendApp(props: Object) support added.
  • RNFirebase no longer requires a singleton exported instance of your app to work (though you can still do this if you'd like). You can now just import RNFirebase in any module and straight away access all the initialised apps. e.g. :
import firebase from 'react-native-firebase';

// get started immediately with the default app for example
firebase.database().ref('kittens').once('value', (snapshot) => {
     console.log('kittenslol', snapshot.val());
});

// or get some other app
const dogsApp = firebase.apps('doge');

// then it's either:

// 1)
dogsApp.database().ref('puppies').once('value', (snapshot) => {
     console.log('muchwow', snapshot.val());
});

// 2) or this one
firebase.database(dogsApp).ref('puppies').once('value', (snapshot) => {
     console.log('muchwow', snapshot.val());
});

See the docs for the following (coming soon):

  • initialising additional apps via js
    • why js app initialisation is not supported for the default app
    • app.onReady(): Promise and why it's needed for JS initialised apps.
  • which firebase modules support multiple apps
  • delete app caveats - e.g cannot delete default apps, cannot delete apps on android, cannot get app config clientId on ios - see issue comments on firebase repo: firebase/firebase-ios-sdk#140 (comment)
  • firebase.SDK_VERSION
  • firebase.DEFAULT_APP_NAME

Auth

  • auth() now supports passing an instance of App as the first argument
  • Phone authentication via verifyPhoneNumber. See #119
  • #f03c15 [breaking] Third party providers now user providerId rather than provider as per the Web SDK. If you are manually creating your credentials, you will need to update the field name.

Firestore

Database

  • database() now supports passing an instance of App as the first argument
  • once now supports context as per the web sdk
  • remove now supports onComplete callbacks (and promises) as per the web sdk
  • update now supports onComplete callbacks (and promises) as per the web sdk
  • setWithPriority now supports onComplete callbacks (and promises) as per the web sdk
  • setPriority now supports onComplete callbacks (and promises) as per the web sdk
  • set now supports onComplete callbacks (and promises) as per the web sdk
  • keepSynced now correctly takes into account query modifiers natively, was ignoring these before
  • improved native transaction implementations to have better error handling and timeout checks (mainly for whilst running in dev)
    • [websdk-diff] the web sdk transaction errors return one worded errors that don't make much sense and have no error codes or description like all the other database errors do. RNFirebase internally maps these into the database error codes w...
Read more

v2.2.3

29 Sep 11:32
Compare
Choose a tag to compare

Changelog

Storage

  • [ios] Add support for Apple's new HEIC image format in iOS 11. react-native-firebase will convert the image file to a JPEG before uploading to ensure compatibility with non Apple devices.

v2.2.2

22 Sep 07:58
Compare
Choose a tag to compare

Changelog

Admob

  • [ios] Remove unnecessary import which is incompatible with the latest version of the Google Ads SDK

Messaging

  • [ios] UIApplication methods should only be called from the main thread

v2.2.1

18 Sep 08:50
Compare
Choose a tag to compare

Changelog

Admob

  • [ios] Add missing files to xcode project #400

Messaging

  • [ios] Set opened_from_tray true if a local notification is clicked from notification center/tray @phips28

v2.2.0

07 Sep 02:10
Compare
Choose a tag to compare
  • Backport RN 0.48 support from v3

v2.1.4

31 Aug 07:29
Compare
Choose a tag to compare

Changelog

  • [ios] Port framework and header search path fixes from v3 to address issue with the latest Firebase Database library