Pitpoints encontrados cuando flutter integra firebase push

Antecedentes, cuando estaba haciendo esto, busqué los resultados de búsqueda integrados de flutter firebase, y la configuración se completó en unas pocas oraciones. Cuando lo hice, descubrí que había muchas trampas. Cualquiera en el proceso formal puede escribir , pero las trampas importantes deben ser A todos les importa. Así que escribí este artículo, espero que este artículo pueda ayudar a los amigos que se han encontrado con muchos obstáculos como yo.

Uno: configuración de base de fuego de Android

1: Vaya a la consola de firebase para solicitar una cuenta y cree una aplicación, descargue el archivo google-services.json y colóquelo en el directorio app/ del proyecto android

2: Configure el archivo gradle. Uno de los dos archivos gradle es el archivo gradle del proyecto, y el otro es el archivo gradle de la aplicación. No presentaré el rol de gradle aquí. Si está interesado, puede ir al sitio web oficial de gradle.

Project-level build.gradle (<project>/build.gradle):
// 配置第三方插件相关
buildscript {
  // 指明下面的插件去哪里下载,这里是到google仓库和maven仓库去下载,它是按照顺序的,如果google下载到了就不会到maven仓库里面下载了
  repositories {
    // Make sure that you have the following two repositories
    google()  // Google's Maven repository

    mavenCentral()  // Maven Central repository

  }
  // 插件的依赖
  dependencies {
    ...
    // Add the dependency for the Google services Gradle plugin
    classpath 'com.google.gms:google-services:4.3.13'

  }
}

allprojects {
  ...
  repositories {
    // Make sure that you have the following two repositories
    google()  // Google's Maven repository

    mavenCentral()  // Maven Central repository

  }
}

Vale la pena señalar que app/build.gradle, la solución proporcionada por el sitio web oficial no es fácil de usar, la siguiente es la base de fuego oficial proporcionada: la ubicación de la ubicación es muy vaga y se informan varios errores en la prueba personal .

plugins {
  id 'com.android.application'

  // Add the Google services Gradle plugin
  id 'com.google.gms.google-services'

  ...
}

dependencies {
  // Import the Firebase BoM
  implementation platform('com.google.firebase:firebase-bom:30.3.2')


  // TODO: Add the dependencies for Firebase products you want to use
  // When using the BoM, don't specify versions in Firebase dependencies
  implementation 'com.google.firebase:firebase-analytics'


  // Add the dependencies for any other desired Firebase products
  // https://firebase.google.com/docs/android/setup#available-libraries
}

Al final, este sitio web firebase_flutter  me salvó y me ayudó a desembarcar con éxito. Pegue la configuración correcta a continuación

android/app/build.gradle
apply plugin: 'com.google.gms.google-services'

Solo esta breve oración es increíble, y luego la introducción del proyecto flutter, firebase_core y firebase_messaging.

 3: Inicializa firebase en el código

Firebase.initializeApp().then((value) async {
    print("firebase init over");
    String? token = await FirebaseMessaging.instance.getToken();
    print("token is $token");
    if(token != null && token.isNotEmpty) {
        // 将token上传到后端,让后端控制发送推送通知
    }
})

En este punto, se completa la integración de Firebase en Android.

Dos: configuración de Firebase en el lado de IOS, este paso es muy extenuante para mí, ¡realmente es un paso a la vez!

1: Todavía descargue el archivo Google-Services.plist

2: configurar base de fuego

Primero echemos un vistazo al sitio web oficial de firebase.

Terminó en unas pocas oraciones, así que pensé que era muy simple y lo seguí, pero el informe de xcode no lo encontró. Verifiqué si era un problema de red, pero no lo era, así que corté al archivo ios y Se agregó pod install, pero el error se informó como FirebaseCore Relying on GoogleUitls Yunyun, por lo que encontré una solución real al problema en Internet.

Error:

[!] Los siguientes pods de Swift aún no se pueden integrar como bibliotecas estáticas:

El pod de Swift  FirebaseCoreInternal-library depende de  GoogleUtilities-library, que no define módulos. Para optar por esos objetivos que generan mapas de módulos (lo cual es necesario para importarlos desde Swift cuando se construyen como bibliotecas estáticas), puede configurarlo  use_modular_headers! globalmente en su Podfile o especificar  :modular_headers => true dependencias particulares.

Solución: Modificar Podfile

 platform :ios, '12.4'
  ...
  ...
  
  pod 'Firebase', :modular_headers => true
  pod 'FirebaseCoreInternal', :modular_headers => true
  pod 'GoogleUtilities', :modular_headers => true
  #....add any library need headers

 Dirección de conexión: solución alternativa

Mirando  el método del sitio web oficial en el sitio web oficial-basura

 Sin mencionar lo peor  

:modular_headers => true

 3: IOS quiere enviar el certificado que debe configurarse para la notificación, y luego descargar el archivo .p8 y cargarlo en el fondo de configuración de Firebase para tener éxito; de lo contrario, informará que no se reconoce apns-string, y debe agregar push configuración en la ubicación del proyecto

Supongo que te gusta

Origin blog.csdn.net/lck8989/article/details/126376104
Recomendado
Clasificación