Как интегрировать два и более файла google-services. json в один проект с помощью ioni c v3 - PullRequest
1 голос
/ 07 мая 2020

Делаю проект на ioni c v3. Мне нужно интегрировать один или несколько проектов fcm для уведомления pu sh.

Описание:

имя проекта example

идентификатор пакета com.example.in

Затем я создаю два проекта fcm, используя две разные учетные записи пользователей, используя один и тот же идентификатор пакета и одно и то же имя проекта.

Теперь мне нужно интегрировать эти два проекта fcm в свое приложение. Как я могу это реализовать?

1 Ответ

3 голосов
/ 24 мая 2020

Сегодня я потратил целый день, чтобы решить ту же задачу. Я удивлен, что эта, казалось бы, очень распространенная проблема еще не решена в Интернете (или я использовал неправильную терминологию в моем поиске). В любом случае, это то, что у меня сработало (проверено в браузере):
Заявление об ограничении ответственности : Я сделал это только для Android, вам нужно добавить к моим шагам ниже, чтобы включить iOS (который, я считаю, должен соответствовать тому же)

  1. создайте следующие файлы и каталоги в своем проекте (это исходные файлы, в которых жестко запрограммированы конфигурации для обоих проектов Firebase. Config. xml необходимо заменить из-за другого пакета name):

  2. используя ioni c хуки, создайте файл build-before.js, который содержит следующий скрипт:

    module.exports = function(ctx) {
      console.log(ctx);
      var fs = require("fs");
      var xmlConfig = "config.xml"
    
      if (ctx.build.configuration == 'production') {
        var srcfile = "src/production/google-services.json";
        var destfile = "google-services.json";
        var srcConfigfile = "src/production/config.xml";
        var destConfigfile = "config.xml";
        console.log("copying " + srcfile + " to " + destfile);
        fs.createReadStream(srcConfigfile).pipe(fs.createWriteStream(destConfigfile));
        fs.createReadStream(srcfile).pipe(fs.createWriteStream(destfile));
    
    
      } else {
        console.log("TARGET environment variable is not set.  Using default values.");
    
        var srcfile = "src/development/google-services.json";
        var destfile = "google-services.json";
        var srcConfigfile = "src/development/config.xml";
        var destConfigfile = "config.xml";
        console.log("copying " + srcfile + " to " + destfile);
        fs.createReadStream(srcConfigfile).pipe(fs.createWriteStream(destConfigfile));
        fs.createReadStream(srcfile).pipe(fs.createWriteStream(destfile));
      }
    }
  3. в файле ionic.config.json добавьте следующее:

    "hooks": { "build:before": "./scripts/build-before.js" }

  4. Протестируйте с помощью следующих команд:

    $ ionic cordova build android --prod
    $ ionic cordova build android
    $ ionic serve --prod
    $ ionic serve

Полезные ссылки

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