title: You attempted to use a firebase module that's not installed on your android project by calling firebase.storage()
body: <p>Im trying to use firebase storage on React Native using the react-native-firebase module and when y call firebase storage I get this error:</p>
  
  <p><a href="https://i.stack.imgur.com/Yk1yS.png" rel="noreferrer">You attempted to use a firebase module that's not installed on your android project by calling firebase.storage()</a>2IM.png</p>
  
  <p>I have add all the necessary dependancies already.</p>
  
  <p><b>android/app/build.gradle</b></p>
  
  <pre><code>apply plugin: "com.android.application"
  import com.android.build.OutputFile
  
  project.ext.react = [
      entryFile: "index.js"
  ]
  
  apply from: "../../node_modules/react-native/react.gradle"
  def enableSeparateBuildPerCPUArchitecture = false
  def enableProguardInReleaseBuilds = false
  
  android {
      compileSdkVersion 26
      buildToolsVersion "26.0.2"
  
      defaultConfig {
          applicationId "com.detecta.detecta"
          minSdkVersion 19
          targetSdkVersion 26
          versionCode 5
          versionName "1.1.6"
          vectorDrawables.useSupportLibrary = true
          ndk {
              abiFilters "armeabi-v7a", "x86"
          }
      }
      signingConfigs {
          release {
              if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                  storeFile file(MYAPP_RELEASE_STORE_FILE)
                  storePassword MYAPP_RELEASE_STORE_PASSWORD
                  keyAlias MYAPP_RELEASE_KEY_ALIAS
                  keyPassword MYAPP_RELEASE_KEY_PASSWORD
              }
          }
      }
      splits {
          abi {
              reset()
              enable enableSeparateBuildPerCPUArchitecture
              universalApk false  // If true, also generate a universal APK
              include "armeabi-v7a", "x86"
          }
      }
      buildTypes {
          release {
              minifyEnabled enableProguardInReleaseBuilds
              proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
              signingConfig signingConfigs.release
          }
      }
      // applicationVariants are e.g. debug, release
      applicationVariants.all { variant -&gt;
          variant.outputs.each { output -&gt;
              // For each separate APK per architecture, set a unique version code as described here:
              // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
              def versionCodes = ["armeabi-v7a":1, "x86":2]
              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
              }
          }
      }
  }
  
  dependencies {
      compile project(':react-native-image-crop-picker')
      compile project(':react-native-svg')
      compile(project(':react-native-firebase')) {
          transitive = false
      }
      compile fileTree(dir: "libs", include: ["*.jar"])
      compile "com.android.support:appcompat-v7:26.1.0"
      compile "com.facebook.react:react-native:+"  // From node_modules
  
      compile "com.google.android.gms:play-services-base:11.8.0"
      compile "com.google.firebase:firebase-core:11.8.0"
      compile "com.google.firebase:firebase-auth:11.8.0"
      compile "com.google.firebase:firebase-database:11.8.0"
      compile "com.google.firebase:firebase-storage:11.8.0"
  }
  
  // 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 plugin: 'com.google.gms.google-services'
  </code></pre>
  
  <p><b>MainApplication.java</b></p>
  
  <pre><code>package com.detecta;
  
  import android.app.Application;
  
  import com.facebook.react.BuildConfig;
  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 java.util.Arrays;
  import java.util.List;
  
  import io.invertase.firebase.RNFirebasePackage;
  import io.invertase.firebase.auth.RNFirebaseAuthPackage;
  import io.invertase.firebase.database.RNFirebaseDatabasePackage;
  import io.invertase.firebase.storage.RNFirebaseStoragePackage;
  
  public class MainApplication extends Application implements ReactApplication {
  
    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
      @Override
      public boolean getUseDeveloperSupport() {
        return BuildConfig.DEBUG;
      }
  
      @Override
      protected List&lt;ReactPackage&gt; getPackages() {
        return Arrays.&lt;ReactPackage&gt;asList(
                new MainReactPackage(),
                new RNFirebasePackage(),
                new RNFirebaseAuthPackage(),
                new RNFirebaseDatabasePackage(),
                new RNFirebaseStoragePackage()
        );
      }
  
      @Override
      protected String getJSMainModuleName() {
        return "index";
      }
    };
  
    @Override
    public ReactNativeHost getReactNativeHost() {
      return mReactNativeHost;
    }
  
    @Override
    public void onCreate() {
      super.onCreate();
      SoLoader.init(this, /* native exopackage */ false);
    }
  }
  </code></pre>
  
  <p>Calling the method</p>
  
  <pre><code>import firebase from 'react-native-firebase';
  
  /*...*/
  
  uploadImage(userId) {
      path = this.state.image ? this.state.image.uri : null;
      firebase
          .storage()
          .ref(`users/${userId}/profile.jpg`)
          .putFile(path)
          .then(snapshot =&gt; {
              console.log(snapshot)
          })
          .catch(err =&gt; {
              console.log(err)
          });
  };
  </code></pre>