Buffer icon Проекты

25 ноября 2019-го

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Firebase под контролем

Обновлено: 16.10.2020
С последними версиями FB этот фокус не работает :(
Точнее инициализация работает когда апп активен, но при выключенном приложении пуши не приходят, FirebaseInitProvider не инициализируется. Разбираюсь...

Firebase Android

Firebase Android

Firebase Android

У меня есть плагин для Unity, который отвечает за уведомления, как локальные так и PUSH. Firebase даёт файлик google-services.json, который нужно добавить в Android проект или плагин, и при сборке, уже Gradle плагин прочитает из этого файла, создаст XML и позже Firebase будет инициализироваться автоматически в приложении.

Но, хотелось бы, чтобы плагин был один и его можно было импортировать в другие проекты, не пересобирая его каждый раз с новый JSON файлом. Думал это будет некоторой проблемой и придётся придумывать костыли, но оказалось всё проще.

Можно инициализировать Firebase вручную с нужными параметрами. Т. е. всё что лежит в JSON файле, можно передать в конструктор и оно будет работать. Для этого, надо добавить в манифест:

<provider
    android:name="com.google.firebase.provider.FirebaseInitProvider"
    android:authorities="${applicationId}.firebaseinitprovider"
    tools:node="remove"
    />

Теперь Firebase автоматически не инициализируется. А чтобы сделать это самому, в плагине, при старте Unity приложения будет вызываться функция с конструктором и нужными параметрами уже из конфига игры или приложения:

FirebaseOptions.Builder builder = new FirebaseOptions.Builder()
    .setApplicationId("your_app_id")
    .setApiKey("your_api_key")
    .setDatabaseUrl("your_link_to_db")
    .setStorageBucket("your_storage-url");
FirebaseApp.initializeApp(this, builder.build());

Теперь нет необходимости каждый раз билдить плагин для уведомлений. Ура.

7 ноября 2019   · · ·
← Ctrl →
· · ·   28 ноября 2019