Ошибка с вызываемыми функциями Firebase

avatar
rsteilberg
7 апреля 2018 в 23:07
689
1
3

Я пытаюсь настроить вызываемые облачные функции Firebase в своем приложении для Android. Для этого в соответствии с этим руководством мне нужно использовать следующий код для инициализации SDK:

FirebaseFunctions f = FirebaseFunctions.getInstance();

Однако, когда я это делаю, приложение вылетает с ошибкой:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: mhealth.mvax.qa, PID: 5390
              java.lang.NullPointerException
                  at com.google.firebase.functions.internal.Preconditions.checkNotNull(Preconditions.java:876)
                  at com.google.firebase.functions.FirebaseFunctions.<init>(FirebaseFunctions.java:77)
                  at com.google.firebase.functions.FirebaseFunctions.getInstance(FirebaseFunctions.java:141)
                  at com.google.firebase.functions.FirebaseFunctions.getInstance(FirebaseFunctions.java:159)
                  at mhealth.mvax.auth.modals.ApproveUserModal.approveRequest(ApproveUserModal.java:143)
                  at mhealth.mvax.auth.modals.ApproveUserModal.lambda$null$0$ApproveUserModal(ApproveUserModal.java:92)

Похоже, что поле projectId, используемое в коде Firebase, имеет значение null, и это вызывает ошибку. Я не знаю, как это обойти.

Изменить: вот мой build.gradle:

apply plugin: 'com.android.application'

android {
    signingConfigs {
        development {
            keyAlias 'Development Key Store'
            keyPassword 'REDACTED'
            storeFile file('../keystores/development_key_store')
            storePassword 'REDACTED'
        }
    }
    compileSdkVersion 26
    defaultConfig {
        applicationId "mhealth.mvax"
        minSdkVersion 24
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    flavorDimensions "default"
    productFlavors {
        dev {
            applicationId 'mhealth.mvax.dev'
            minSdkVersion 24
            targetSdkVersion 24
            signingConfig signingConfigs.development
            testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        }
        qa {
            applicationId 'mhealth.mvax.qa'
            minSdkVersion 24
            targetSdkVersion 24
            signingConfig signingConfigs.development
            testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        }
        prod {
            applicationId 'mhealth.mvax.prod'
            minSdkVersion 24
            targetSdkVersion 24
            testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        }
    }
    buildTypes {
        debug {
            debuggable true
            minifyEnabled false
        }
        release {
            debuggable false
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        // ultimately we may want checkReleaseBuilds and abortOnError to be true
        checkReleaseBuilds false
        abortOnError false
    }
    sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation 'com.android.support:support-v13:26.1.0' // must use v13 for ViewPager
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.jjoe64:graphview:4.2.1'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.google.firebase:firebase-database:12.0.1'
    implementation 'com.google.firebase:firebase-auth:12.0.1'
    implementation 'com.google.android.gms:play-services-auth:12.0.1'
    implementation 'com.google.firebase:firebase-invites:12.0.1'
    implementation 'com.google.firebase:firebase-functions:12.0.1'
    implementation 'com.algolia:algoliasearch-android:3.10.1'
    implementation 'joda-time:joda-time:2.9.9'
    androidTestImplementation 'junit:junit:4.12'
    testImplementation 'junit:junit:4.12'
    implementation files('libs/itext5-itextpdf-5.5.12.jar')
    testImplementation 'org.hamcrest:hamcrest-library:1.3'
    implementation files('libs/javax.mail.jar')
}

apply plugin: 'com.google.gms.google-services'
Источник
Bob Snyder
7 апреля 2018 в 23:59
1

Обновите свой вопрос, включив в него содержимое файла build.gradle вашего модуля приложения.

rsteilberg
8 апреля 2018 в 01:00
0

Готово - я включил это выше.

rsteilberg
8 апреля 2018 в 01:30
0

Кажется, что идентификатор проекта FirebaseApp имеет значение null. Когда я делаю FirebaseApp app = FirebaseApp.getInstance();, projectId имеет значение null, и это вызывает ошибку в вызове FirebaseFunctions. Я не уверен, как это исправить.

rsteilberg
8 апреля 2018 в 01:45
0

А, я решил эту проблему, изменив 'com.google.gms:google-services:3.0.0' на 'com.google.gms:google-services:3.1.0' в моем проекте build.gradle.

Ответы (1)

avatar
rsteilberg
8 апреля 2018 в 01:45
0

Я решил эту проблему, изменив

'com.google.gms:google-services:3.0.0'

до

'com.google.gms:google-services:3.1.0'

на уровне моего проекта build.gradle.