Я отправляю push-уведомления на устройства из службы облачных сообщений Firebase. Для этого я использовал FirebaseAdmin SDK на .Net Core. Я следовал точным инструкциям из документации Firebase, чтобы инициализировать FirebaseApp и отправлять сообщения. Поскольку этот код должен был выполняться из-за брандмауэра, мне был предоставлен протестированный прокси-сервер от нашей команды для установки на HttpClientFactory администратора Firebase, который я поэтому реализовал для этой цели.
Вот мой код ...
Начальная часть
FirebaseApp.Create(new AppOptions()
{
Credential = GoogleCredential.FromJson("")// service account json content,
HttpClientFactory = new ProxyHttpClientFactory(new WebProxy()
{
Address = new Uri("") //anonymous proxy address
})
});
Реализация HttpClientFactory
public sealed class ProxyHttpClientFactory : HttpClientFactory
{
private readonly IWebProxy _proxy;
public ProxyHttpClientFactory(IWebProxy proxy)
{
_proxy = proxy;
}
protected override HttpMessageHandler CreateHandler(CreateHttpClientArgs args)
{
return new HttpClientHandler
{
Proxy = _proxy,
UseProxy = true,
};
}
}
Отправка сообщения Firebase
var _fcm = FirebaseMessaging.DefaultInstance;
var message = new Message()
{
Notification = new Notification()
{
Title = "title",
Body = "body"
},
Token = "" //valid device token
};
_fcm.SendAsync(message);
После вызова SendAsync из FCM я получу исключение http, говорящее:
«Нет такого устройства или адреса»
Что наиболее вероятно означает, что прокси не работал должным образом, и я все еще застрял за брандмауэром. Мне удалось отправить сообщение через прокси из команды Curl, но я не могу заставить его работать со стороны точечной сети. Я вмешался в свойства WebProxy
, отправив пустые учетные данные, включив и отключив прокси-сервер для локального сервера, отправив ноль для списка байпасов и т. Д., Но все безрезультатно. Содержимое учетной записи службы в порядке и устанавливается должным образом, даже настройки прокси-сервера в фабрике клиентов, кажется, установлены, но не работают.
Любой обходной путь / решения будут безоговорочно приветствоваться!