Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法接收firebase云消息,react--本机firebase 我无法接收使用Firebase云消息发送的消息。_Android_Firebase_Firebase Cloud Messaging_React Native Firebase - Fatal编程技术网

Android 无法接收firebase云消息,react--本机firebase 我无法接收使用Firebase云消息发送的消息。

Android 无法接收firebase云消息,react--本机firebase 我无法接收使用Firebase云消息发送的消息。,android,firebase,firebase-cloud-messaging,react-native-firebase,Android,Firebase,Firebase Cloud Messaging,React Native Firebase,我所做的 克隆的react原生firebase启动器套件。 git克隆https://github.com/invertase/react-native-firebase-starter.git 生成google-services.json文件并将其放在android/app 反应本机运行android 生成失败,出现错误 失败:生成失败,出现异常 出了什么问题: 任务的执行失败 “:app:transformclasses with multi-dexlistfordebug”。 com.a

我所做的

  • 克隆的react原生firebase启动器套件。
    git克隆https://github.com/invertase/react-native-firebase-starter.git

  • 生成google-services.json文件并将其放在
    android/app

  • 反应本机运行android
  • 生成失败,出现错误

    失败:生成失败,出现异常

    • 出了什么问题: 任务的执行失败 “:app:transformclasses with multi-dexlistfordebug”。 com.android.build.api.transform.TransformException:运行时出错 生成主索引列表

  • 将RNFirebase依赖项版本从15.0.1更改为12.0.1 eg
    实现“com.google.firebase:firebase消息:15.0.0”

    实现“com.google.firebase:firebase消息:12.0.1”

  • 反应本机运行android
    生成成功,但出现警告

    Could not find google-services.json while looking in [src/nullnull/debug, src/debug/nullnull, src/nullnull, src/debug, src/nullnullDebug]
    registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
    registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
    Could not find google-services.json while looking in [src/nullnull/release, src/release/nullnull, src/nullnull, src/release, src/nullnullRelease]
    registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
    
  • 我仍然没有收到来自Firebase控制台的任何消息

  • 我已经上传了同一个存储库以及google-services.json文件
  • 我已经试过了什么?

  • 从警告中读取,我创建了
    android/app/src/release
    android/app/src/debug
    ,并在其中放置了
    googleservices.json
    文件。警告消失了,但消息没有成功。

  • 我还尝试创建一个新的文档,并按照文档进行操作,然后。
    在[src/nullnull/debug,src/debug/nullnull,src/nullnull,src/debug,src/nulldebug,src/nulldebug]中查找时,我也收到了同样的警告
    找不到google-services.json

    在签出到分支
    attem3/add firebase
    中查看firebase代码。
    git签出attem3/add firebase

  • 对于react原生firebase启动器

    googleservices.json

    android/build.gradle
    AndroidManifest.xml
    
    
    补充资料 平台-安卓
    节点版本v8.6.0
    npm版本5.3.0


    谢谢大家!

    我试过这个,效果很好:

  • git克隆
  • 将您的google-services.json复制到android/app
  • npm安装
  • react本地运行的android

  • 构建完成,应用程序加载到emulator上。我在MAC电脑上。我的npm版本是5.7.1,节点版本是9.8.0

    您是否尝试使用通道发送推送令牌? 对于我,我将邮寄请求发送至: 有效载荷为:

    {
     "to" : "ddUYveNp4QE:...",
     "notification" : {
     "body" : "un nouveau partage",
     "title" : "un partage de contact reçu",
     "priority" : "high",
     "vibration":true,
     "sound": "Enabled",
     "badge":1,
     "requireInteraction": true,
     "click_action": "fcm.ACTION.HELLO"
     },
     "data" : {
     "body" : "nouvelle opportunité",
     "title" : "un nouveau partage",
     "content_available" : true,
     "priority" : "high"
     } 
    }
    

    您好,非常感谢您的回复!!在过去的2-3天里,我一直在做这个,但是运气不好。今天,经过一段时间的实验,我意识到只有当应用程序在后台时才会收到通知。当应用程序打开时,不会显示任何通知。通知在android上对我有效,我通过从firebase消息控制台发送消息进行了测试。只有当应用程序在后台时,你才会收到通知,对吗?现在,当应用程序在前台时,我正在向用户显示通知。
    apply plugin: "com.android.application"
    apply plugin: "io.fabric"
    
    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",
    *
    *   // 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
    
    android {
        // because of firestore:
        dexOptions {
            javaMaxHeapSize "4g"
        }
        compileSdkVersion 27
    
        defaultConfig {
            applicationId "com.invertase.rnfirebasestarter"
            minSdkVersion 16
            targetSdkVersion 22
            versionCode 1
            versionName "1.0"
            ndk {
                abiFilters "armeabi-v7a", "x86"
            }
            // because of firestore:
            multiDexEnabled true
        }    {
          "project_info": {
            "project_number": "985473870159",
            "firebase_url": "https://rnexampleproject.firebaseio.com",
            "project_id": "rnexampleproject",
            "storage_bucket": "rnexampleproject.appspot.com"
          },
          "client": [
            {
              "client_info": {
                "mobilesdk_app_id": "1:985473870159:android:8d4e41f333ad27fa",
                "android_client_info": {
                  "package_name": "com.invertase.rnfirebasestarter"
                }
              },
              "oauth_client": [
                {
                  "client_id": "985473870159-n397khjlfd8avu751vtqifctv1tggkf0.apps.googleusercontent.com",
                  "client_type": 1,
                  "android_info": {
                    "package_name": "com.invertase.rnfirebasestarter",
                    "certificate_hash": "bb9a16aed3785f6d36b453648e50b82aa885c693"
                  }
                },
                {
                  "client_id": "985473870159-u7p4nnujgedhcbov4k2rgb4nrh85tk8v.apps.googleusercontent.com",
                  "client_type": 3
                }
              ],
              "api_key": [
                {
                  "current_key": "AIzaSyBQJNkpMAh3-reDRBbHmK9AmLd5ykVy2vM"
                }
              ],
              "services": {
                "analytics_service": {
                  "status": 1
                },
                "appinvite_service": {
                  "status": 2,
                  "other_platform_oauth_client": [
                    {
                      "client_id": "985473870159-u7p4nnujgedhcbov4k2rgb4nrh85tk8v.apps.googleusercontent.com",
                      "client_type": 3
                    }
                  ]
                },
                "ads_service": {
                  "status": 2
                }
              }
            }
          ],
          "configuration_version": "1"
        }
        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"
            }
            debug {
                minifyEnabled false
                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:
                // 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 {
        implementation(project(':react-native-firebase')) {
            transitive = false
        }
    
        // RNFirebase required dependencies
        implementation "com.google.firebase:firebase-core:12.0.1"
        implementation "com.google.android.gms:play-services-base:12.0.1"
    
        // RNFirebase optional dependencies
        implementation "com.google.firebase:firebase-ads:12.0.1"
        implementation "com.google.firebase:firebase-auth:12.0.1"
        implementation "com.google.firebase:firebase-config:12.0.1"
        implementation "com.google.firebase:firebase-database:12.0.1"
        implementation "com.google.firebase:firebase-invites:12.0.1"
        implementation "com.google.firebase:firebase-firestore:12.0.1"
        implementation "com.google.firebase:firebase-messaging:12.0.1"
        implementation "com.google.firebase:firebase-perf:12.0.1"
        implementation "com.google.firebase:firebase-storage:12.0.1"
    
        implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
            transitive = true
        }
    
        implementation fileTree(dir: "libs", include: ["*.jar"])
        implementation "com.android.support:appcompat-v7:27.0.2"
        implementation "com.facebook.react:react-native:+"  // From node_modules
    }
    
    // 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'
    
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.invertase.rnfirebasestarter"
        android:versionCode="1"
        android:versionName="1.0">
    
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    
        <application
          android:name=".MainApplication"
          android:allowBackup="true"
          android:label="@string/app_name"
          android:icon="@mipmap/ic_launcher"
          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" />
          <service android:name="io.invertase.firebase.messaging.RNFirebaseMessagingService">
            <intent-filter>
              <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
          </service>
          <service android:name="io.invertase.firebase.messaging.RNFirebaseInstanceIdService">
            <intent-filter>
              <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
          </service>
        </application>
    
    </manifest>
    
    {
     "to" : "ddUYveNp4QE:...",
     "notification" : {
     "body" : "un nouveau partage",
     "title" : "un partage de contact reçu",
     "priority" : "high",
     "vibration":true,
     "sound": "Enabled",
     "badge":1,
     "requireInteraction": true,
     "click_action": "fcm.ACTION.HELLO"
     },
     "data" : {
     "body" : "nouvelle opportunité",
     "title" : "un nouveau partage",
     "content_available" : true,
     "priority" : "high"
     } 
    }