Flutter: компонент Firestore отсутствует - PullRequest
0 голосов
/ 26 января 2019

У меня проблема с базой данных Firestore под Flutter.Я сделал все, что говорится в документации по настройке пакета, просмотрел 2-3 готовых общедоступных приложения и попытался использовать пакет как другие.Я даже пытался реализовать собственную инициализацию Firestore, потому что я думаю, что проблема на стороне платформы, но все же приложение получает

java.lang.NullPointerException: компонент Firestore отсутствует.

когда я пытаюсь использовать экземпляр Firestore.

В проекте / build.gradle я устанавливаю

classpath 'com.google.gms: google-services:4.0.1 '

для зависимости, а также импортировано

' com.google.firebase: firebase-core: 16.0.1 '

' com.android.support: multidex: 1.0.3 '

В папке моего приложения есть google-service.json.

Может кто-нибудь помочь мне с этой проблемой?Я потратил впустую день, и все еще ничего.Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 10 июня 2019

У меня также возникает та же проблема после обновления пакета cloud_functions до 0.4.0.Я опробовал различные комбинации, и я получил эту конфигурацию:

    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
        classpath 'com.google.gms:google-services:4.2.0'
    }

Обратите внимание, что согласно официальной документации 1005 *, Flutter в настоящее время совместим с версией 3.2.1 плагинов для служб Google.Я не делал полный тест на основе 4.2.0 плагинов Служб Google.Пока что Firebase Authentication, Cloud Functions и Firestore работают нормально.

0 голосов
/ 27 января 2019

Хорошо, так что я решил разобраться с другой проблемой.

Не знаю, был ли я единственным, кто не знал, но из-за нового обновления gradle,

classpath 'com.google.gms: google-услуги: 3.2.1 '

устарело.Я на самом деле не знаю, как, черт возьми, но это вызвало, что каким-то образом Флаттер неправильно понял экземпляр и выдал исключение nullPointer.Если у кого-то есть такая же проблема (консоль отладки показывает устаревшее предупреждение), вы должны изменить

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
        classpath 'com.google.gms:google-services:3.2.1'

     }
  }
}

строк в android / build.gradle на

buildscript {
    repositories {
            google()
            jcenter()
        }

    dependencies {
            classpath 'com.android.tools.build:gradle:3.3.0'
            classpath ('com.google.gms:google-services:3.2.1') {
                exclude group: 'com.google.guava', module: 'guava-jdk5'
       }
    }
}

Я не оченьЯ знаю, почему устаревшая форма зависимости включает в себя такую ​​проблему, но это изменение сработало для меня, и я надеюсь, что это поможет и другим.Кроме того, я не думаю, что это должно привести к таким потерянным дням, так как большая часть документации должна включать это исправление для разработчиков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...