Exemple #1
0
 /// <summary>
 /// Логгирует ответы сервера Firebase
 /// </summary>
 /// <param name="response"></param>
 /// Подробнее здесь:
 /// https://firebase.google.com/docs/cloud-messaging/server#response
 private void CheckFirebaseResponse(FirebaseResponse response)
 {
     Log.Info(LoggerStrings.LOG_RESPONSERECEIVED);
     if (response.Failure == 0 && (response.Canonical_Ids == null || response.Canonical_Ids == "0"))
     {
         //TODO: что, если вернется несколько messageID?
         Log.Info(LoggerStrings.LOG_MESSAGEOK(response.Message_Id));
     }
     else
     {
         if (response.Results != null)
         {
             foreach (var result in response.Results)
             {
                 if (result.Error != null)
                 {
                     Log.Warn(LoggerStrings.LOG_ERRORPUSHINGMESSAGE(result.Error));
                 }
                 else
                 {
                     Log.Warn(LoggerStrings.LOG_UNKNOWNRESULT);
                 }
             }
         }
     }
 }
Exemple #2
0
        /// <summary>
        /// Отсылает сообщение в Firebase и пишет лог
        /// </summary>
        /// <param name="message"></param>
        public async void SendMessage(PushMessage message)
        {
            try
            {
                Log.Info(LoggerStrings.LOG_SENDINGPUSHMESSAGE(message.Message.Title));
                var response = await SendJSON(message);

                CheckFirebaseResponse(response);
            }
            catch (JsonReaderException readerEx) //пришёл корявый JSON. Такие ошибки надо отлавливать, чтобы быть готовым ко всему, что Firebase нам пошлет
            {
                Log.Error(LoggerStrings.LOG_BADJSON, readerEx);
            }
            catch (Exception ex) //Код ответа != 200 или неизвестная ошибка
            {
                Log.Error(LoggerStrings.LOG_CODENOT200ORUNKNOWNERROR, ex);
            }
            finally
            {
                Log.Error(LoggerStrings.LOG_SEPARATOR);
            }
        }