В моем приложении более 300+ клиентов, и я использую Firebase Cloud Messaging API для отправки push-уведомлений. Недавно я перешел на FCM V1 и использовал Firebase Admin SDK. Мы используем одну службу для отправки push-уведомлений. Поскольку мы не можем инициализировать приложения Firebase для каждого клиента при запуске службы, я инициализировал приложение Firebase при отправке push-уведомлений. Чтобы избежать дублирования инициализации приложения Firebase, я использовал приведенный ниже фрагмент кода. Но все же я получаю ошибку "Имя FirebaseApp [project-id] уже существует!".
В моем приложении более 300+ клиентов, и я использую Firebase Cloud Messaging API для отправки push-уведомлений. Недавно я перешел на FCM V1 и использовал Firebase Admin SDK. Мы используем одну службу для отправки push-уведомлений. Поскольку мы не можем инициализировать приложения Firebase для каждого клиента при запуске службы, я инициализировал приложение Firebase при отправке push-уведомлений. Чтобы избежать дублирования инициализации приложения Firebase, я использовал приведенный ниже фрагмент кода. Но все же я получаю ошибку [b]"Имя FirebaseApp [project-id] уже существует!"[/b]. [code] private FirebaseApp getFirebaseApp(final String serverKeyJson, final String projectId) throws IOException { for (final FirebaseApp app : FirebaseApp.getApps()) { if (app.getOptions().getProjectId().equals(projectId)) { return app; } }
final ByteArrayInputStream credentialsStream = new ByteArrayInputStream(serverKeyJson.getBytes());
final FirebaseOptions options = FirebaseOptions.builder() .setCredentials(GoogleCredentials.fromStream(credentialsStream)) .setProjectId(projectId) .build();
return FirebaseApp.initializeApp(options, projectId); } [/code] Служба push-уведомлений основана на Spring-boot. Как решить эту проблему?