Вы, конечно, можете отправить сообщение прямо из вашего клиентского приложения, но тогда у вас будет огромная проблема безопасности . Для SDK администратора требуется учетная запись службы для инициализации, и вам придется упаковать эту учетную запись службы в свое приложение, чтобы она могла вызывать API FCM.
Распространение учетной записи службы настоятельно не рекомендуется, поскольку сейчас позволяет каждому делать все для вашего проекта, что разрешено делать учетной записи службы. Это может быть что угодно.
Вместо этого люди помещают код обмена сообщениями в защищенные бэкэнды, где служебная учетная запись не может быть видна другим. Облачные функции - популярный вариант для этого, но вы можете использовать любой бэкэнд, какой захотите.