Уведомление Firebase не будет генерировать новое в api C#. NET - PullRequest
1 голос
/ 18 июня 2020

Мы можем отправить уведомление на устройство, используя его токен и ключ сервера проекта firebase через fcm.googleapis.com/fcm/send. Поэтому я попытался заставить его работать в коде ниже. Он работает, но у меня проблема в том, что он не отправляет несколько уведомлений. Например, если я отправлю уведомление, а затем отправлю другое перед тем, как зарегистрировать это уведомление, старое уведомление будет отредактировано с новой информацией о последнем уведомлении, которое я только что отправил, вместо создания нового уведомления. Что я сделал не так, здесь?

Мой API:

[HttpPost]
    [Route("api/test/Notification/{deviceID}")]
    public IHttpActionResult SendNotify(int deviceID)
    {
        string deviceToken = "cAF8JeveS9av5pIdQtge0-:APA91bGvzkAno7ycM_fIzqwEjhIUTBy-la9u71_" +
            "vYocHFhnnuGIO0PyfAMU2ph0cae6YuRGpYTAnbw9KtcKgN-aENmED3Bz4KLHnjrpU9HgfRHhBcTBP_" +
            "gbd41-tcsMD4kC9Vl0dnHC2";
        string now = DateTime.Now.ToString("H:mm");
        string room = "AZ1";

        string titleText = "Detect drowsiness!";
        string bodyText = "There was a drowsiness in " + room + deviceID + " at " + now;


        var data = new
        {
            to = deviceToken,
            data = new
            {
                title = titleText,
                body = bodyText,
                message = bodyText
            }
        };
        var serializer = new JavaScriptSerializer();
        var json = serializer.Serialize(data);
        byte[] byteArray = Encoding.UTF8.GetBytes(json);
        FirebaseNotification firebaseNotification = new FirebaseNotification();
        firebaseNotification.SendNotification(byteArray);
        return Ok();
    }

Мой код отправки уведомления:

public void SendNotification(byte[] byteArray)
    {
        try
        {
            string authorizationKey = "AAAA2d4Cw1E:APA91bEvIFr0lk6FOBIvwKnIn9qITwnfU7w15j2X0IBoREUCzmcwuLH-TmC93vlhhBlF1XwO170pc7I2HuEEYvHiqAeWr5f2pGiW3AuuNORcn1ikDdyjipHdBHVthG5qdeCoHLw6-v8_";

            WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
            tRequest.Method = "POST";
            //tRequest.ContentType = "";
            tRequest.ContentType = "application/json";
            tRequest.Headers.Add($"Authorization: key={authorizationKey}");

            tRequest.ContentLength = byteArray.Length;
            Stream dataStream = tRequest.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();

            WebResponse tResponse = tRequest.GetResponse();
            dataStream = tResponse.GetResponseStream();
            StreamReader tReader = new StreamReader(dataStream);

            string tResponseFromServer = tReader.ReadToEnd();

            tReader.Close();
            dataStream.Close();
            tResponse.Close();
        }
        catch (Exception)
        {
            throw;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...