Closed
Description
Issue
Querying the database with orderByChild
and equalTo(true)
or equalTo(false)
will lead to a native-side crash when we run the query through an on()
event listener. Interesting to also note that if we change the call to .once()
it no longer crashes with an error.
iOS crash log (click to expand)
Exception 'When using queryOrderedByPriority, values provided to queryStartingAtValue:, queryEndingAtValue:, or queryEqualToValue: must be valid priorities.' was thrown while invoking on on target RNFBDatabaseQueryModule with params (
"[DEFAULT]",
"https://test-crash.firebaseio.com",
{
appName = "[DEFAULT]";
eventType = value;
hasCancellationCallback = 0;
key = "$https://test-crash.firebaseio.com$/test$[DEFAULT]${filter-endAt:false:,filter-startAt:false:,order-orderByChild:disabled}";
modifiers = (
{
id = "filter-endAt:false:";
name = endAt;
type = filter;
value = 0;
valueType = boolean;
},
{
id = "filter-startAt:false:";
name = startAt;
type = filter;
value = 0;
valueType = boolean;
},
{
id = "order-orderByChild:disabled";
key = disabled;
name = orderByChild;
type = orderBy;
}
);
path = "test";
registration = {
eventRegistrationKey = "$https://test-crash.firebaseio.com$/test$[DEFAULT]${filter-endAt:false:,filter-startAt:false:,order-orderByChild:disabled}$4$value";
key = "$https://test-crash.firebaseio.com$/test$[DEFAULT]${filter-endAt:false:,filter-startAt:false:,order-orderByChild:disabled}";
registrationCancellationKey = "$https://test-crash.firebaseio.com$/test$[DEFAULT]${filter-endAt:false:,filter-startAt:false:,order-orderByChild:disabled}$4$value$cancelled";
};
}
)
callstack: (
0 CoreFoundation 0x00007fff23b98bde __exceptionPreprocess + 350
1 libobjc.A.dylib 0x00007fff503b5b20 objc_exception_throw + 48
2 CoreFoundation 0x00007fff23b98a1c +[NSException raise:format:] + 188
3 Audit 0x000000010e3130a7 -[FIRDatabaseQuery validateQueryEndpointsForParams:] + 1719
4 Audit 0x000000010e313d8a -[FIRDatabaseQuery queryEndingAtInternal:childKey:from:priorityMethod:] + 474
5 Audit 0x000000010e3139e0 -[FIRDatabaseQuery queryEndingAtValue:] + 96
6 Audit 0x000000010e31a55d -[FIRDatabaseReference queryEndingAtValue:] + 93
7 Audit 0x000000010eaa51d7 -[RNFBDatabaseQuery buildQueryWithModifiers:modifiers:] + 2935
8 Audit 0x000000010eaa45be -[RNFBDatabaseQuery initWithReferenceAndModifiers:modifiers:] + 174
9 Audit 0x000000010eaa617b -[RNFBDatabaseQueryModule getDatabaseQueryInstance:reference:modifiers:] + 219
10 Audit 0x000000010eaa77f4 -[RNFBDatabaseQueryModule on:::] + 436
11 CoreFoundation 0x00007fff23b9f95c __invoking___ + 140
12 CoreFoundation 0x00007fff23b9cd8f -[NSInvocation invoke] + 287
13 CoreFoundation 0x00007fff23b9d1f4 -[NSInvocation invokeWithTarget:] + 68
14 Audit 0x000000010ec05782 -[RCTModuleMethod invokeWithBridge:module:arguments:] + 2658
15 Audit 0x000000010ec098b7 _ZN8facebook5reactL11invokeInnerEP9RCTBridgeP13RCTModuleDatajRKN5folly7dynamicE + 791
16 Audit 0x000000010ec093c3 _ZZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEiENK3$_0clEv + 131
17 Audit 0x000000010ec09339 ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 25
18 libdispatch.dylib 0x00007fff511fb888 _dispatch_call_block_and_release + 12
19 libdispatch.dylib 0x00007fff511fc7f9 _dispatch_client_callout + 8
20 libdispatch.dylib 0x00007fff51202566 _dispatch_lane_serial_drain + 707
21 libdispatch.dylib 0x00007fff51202f9c _dispatch_lane_invoke + 388
22 libdispatch.dylib 0x00007fff5120d06c _dispatch_workloop_worker_thread + 626
23 libsystem_pthread.dylib 0x00007fff5141c611 _pthread_wqthread + 421
24 libsystem_pthread.dylib 0x00007fff5141c3fd start_wqthread + 13
)
Android crash log (click to expand)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: Exception in native call
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: java.lang.IllegalArgumentException: When using orderByPriority(), values provided to startAt(), endAt(), or equalTo() must be valid priorities.
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at com.google.firebase.database.Query.validateQueryEndpoints(com.google.firebase:firebase-database@@18.0.1:107)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at com.google.firebase.database.Query.endAt(com.google.firebase:firebase-database@@18.0.1:482)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at com.google.firebase.database.Query.endAt(com.google.firebase:firebase-database@@18.0.1:468)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at com.google.firebase.database.Query.endAt(com.google.firebase:firebase-database@@18.0.1:420)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at io.invertase.firebase.database.ReactNativeFirebaseDatabaseQuery.applyEndAtFilter(ReactNativeFirebaseDatabaseQuery.java:254)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at io.invertase.firebase.database.ReactNativeFirebaseDatabaseQuery.applyFilterModifier(ReactNativeFirebaseDatabaseQuery.java:230)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at io.invertase.firebase.database.ReactNativeFirebaseDatabaseQuery.<init>(ReactNativeFirebaseDatabaseQuery.java:52)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at io.invertase.firebase.database.ReactNativeFirebaseDatabaseQueryModule.getDatabaseQueryInstance(ReactNativeFirebaseDatabaseQueryModule.java:85)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at io.invertase.firebase.database.ReactNativeFirebaseDatabaseQueryModule.on(ReactNativeFirebaseDatabaseQueryModule.java:388)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at java.lang.reflect.Method.invoke(Native Method)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:158)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at android.os.Handler.handleCallback(Handler.java:873)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at android.os.Handler.dispatchMessage(Handler.java:99)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at android.os.Looper.loop(Looper.java:214)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:232)
11-06 16:20:05.543 30358 30402 E unknown:ReactNative: at java.lang.Thread.run(Thread.java:764)
In order to reproduce, simply use the quick-start project with database
{
"test": {
"test1": {
"disabled": true,
"name": "Test True 1"
},
"test2": {
"disabled": false,
"name": "Test False 1"
},
"test3": {
"disabled": false,
"name": "Test False 2"
}
}
}
run the scripts below to quick-start a project
npx @react-native-community/cli init --template=@react-native-firebase/template crashtest
cd crashtest
yarn add @react-native-firebase/database
and in App.js
add a quick test database call
/**
* Sample React Native App with Firebase
* https://github.com/invertase/react-native-firebase
*
* @format
* @flow
*/
import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View } from 'react-native';
import firebase from '@react-native-firebase/app';
import database from '@react-native-firebase/database';
...
...
export default class App extends Component {
componentDidMount() {
const testRef = database()
.ref()
.child('/test')
.orderByChild('disabled')
.equalTo(false);
testRef.on('value', (snapshot: any) => {
console.log(snapshot.val());
});
}
render() {
return (
...
...
}
}
}
Project Files
iOS
Click To Expand
ios/Podfile
:
- I'm not using Pods
- I'm using Pods and my Podfile looks like:
platform :ios, '10.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
# To override the React Native Firebase iOS SDK versions used uncomment any of the below and change the version
# $FirebaseSDKVersion = '6.8.1'
# $FabricSDKVersion = '1.6.0'
# $CrashlyticsSDKVersion = '3.1.0'
target 'crashtest' do
# Pods for crashtest
pod 'React', :path => '../node_modules/react-native/'
pod 'React-Core', :path => '../node_modules/react-native/React'
pod 'React-DevSupport', :path => '../node_modules/react-native/React'
pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'
pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
target 'crashtestTests' do
inherit! :search_paths
# Pods for testing
end
use_native_modules!
end
target 'crashtest-tvOS' do
# Pods for crashtest-tvOS
target 'crashtest-tvOSTests' do
inherit! :search_paths
# Pods for testing
end
end
AppDelegate.m
:
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import "AppDelegate.h"
#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
moduleName:@"rn61fb"
initialProperties:nil];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
return YES;
}
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}
@end
Android
Click To Expand
Have you converted to AndroidX?
- my application is an AndroidX application?
- I am using
android/gradle.settings
jetifier=true
for Android compatibility? - I am using the NPM package
jetifier
for react-native compatibility?
android/build.gradle
:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 16
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"
}
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
classpath 'com.google.gms:google-services:4.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
jcenter()
}
}
android/app/build.gradle
:
apply plugin: "com.android.application"
import com.android.build.OutputFile
/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
* and bundleReleaseJsAndAssets).
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation
* entryFile: "index.android.js",
*
* // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
* bundleCommand: "ram-bundle",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // whether to disable dev mode in custom build variants (by default only disabled in release)
* // for example: to disable dev mode in the staging build type (if configured)
* devDisabledInStaging: true,
* // The configuration property can be in the following formats
* // 'devDisabledIn${productFlavor}${buildType}'
* // 'devDisabledIn${buildType}'
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"],
*
* // override which node gets called and with what additional arguments
* nodeExecutableAndArgs: ["node"],
*
* // supply additional arguments to the packager
* extraPackagerArgs: []
* ]
*/
project.ext.react = [
entryFile: "index.js"
]
apply from: "../../node_modules/react-native/react.gradle"
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
def enableProguardInReleaseBuilds = false
/**
* Use international variant JavaScriptCore
* International variant includes ICU i18n library and necessary data allowing to use
* e.g. Date.toLocaleString and String.localeCompare that give correct results
* when using with locales other than en-US.
* Note that this variant is about 6MiB larger per architecture than default.
*/
def useIntlJsc = false
android {
compileSdkVersion rootProject.ext.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.crashtest"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://facebook.github.io/react-native/docs/signed-apk-android.
signingConfig signingConfigs.debug
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// https://developer.android.com/studio/build/configure-apk-splits.html
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
packagingOptions {
pickFirst '**/armeabi-v7a/libc++_shared.so'
pickFirst '**/x86/libc++_shared.so'
pickFirst '**/arm64-v8a/libc++_shared.so'
pickFirst '**/x86_64/libc++_shared.so'
pickFirst '**/x86/libjsc.so'
pickFirst '**/armeabi-v7a/libjsc.so'
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.facebook.react:react-native:+" // From node_modules
// JSC from node_modules
if (useIntlJsc) {
implementation 'org.webkit:android-jsc-intl:+'
} else {
implementation 'org.webkit:android-jsc:+'
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
apply plugin: 'com.google.gms.google-services'
android/settings.gradle
:
rootProject.name = 'crashtest'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
MainApplication.java
:
package com.crashtest;
import android.app.Application;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.facebook.react.PackageList;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
// additional non auto detected packages can still be added here:
// packages.add(new SomeReactNativePackage());
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
AndroidManifest.xml
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.crashtest">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
Environment
Click To Expand
react-native info
output:
System:
OS: macOS Mojave 10.14.4
CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
Memory: 310.84 MB / 16.00 GB
Shell: 5.3 - /bin/zsh
Binaries:
Node: 10.16.3 - ~/.nvm/versions/node/v10.16.3/bin/node
Yarn: 1.19.1 - /usr/local/bin/yarn
npm: 6.9.0 - ~/.nvm/versions/node/v10.16.3/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.0, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5900203
Xcode: 11.0/11A420a - /usr/bin/xcodebuild
npmPackages:
@react-native-community/cli: ^2.9.0 => 2.9.0
react: 16.8.6 => 16.8.6
react-native: 0.60.5 => 0.60.5
npmGlobalPackages:
react-native-cli: 2.0.1
- Platform that you're experiencing the issue on:
- iOS
- Android
- iOS but have not tested behavior on Android
- Android but have not tested behavior on iOS
- Both
react-native-firebase
version you're using that has this issue:- 6.0.3
Firebase
module(s) you're using that has the issue:- Realtime Database
- Are you using
TypeScript
?- Not for the example repo
Think react-native-firebase
is great? Please consider supporting all of the project maintainers and contributors by donating via our Open Collective where all contributors can submit expenses. [Learn More]
- 👉 Check out
React Native Firebase
andInvertase
on Twitter for updates on the library.
Activity