FCM字段“数据”必须是JSON数组

时间:2017-07-30 03:42:05

标签: arrays json firebase

您正在与邮递员合作制作我的json对象FCM消息: 但是当我尝试发送时:

    {  
   "to":"fzvihT7dFUI:APA91bFVhnWAxXVjlWiiHIs9ZUyL1DE2hZO6GpItJtReh3hcKF1kD6mLuQq9fNP9xvS5bOFWUOG-OW-uyOedc1C43m8jfvD4OOfsBYuMbM7t1-dZEy2kQcuv3gJw6dhneVus2AR_hQHQ",
   "data":[  
      {  
         "time":1501385514224,
         "CC":"1030626890"
      }
   ],
   "notification":{  
      "body":"SPO2:95 \nPulso:75",
      "title":"El paciente Daniel Ortiz nesecita asistencia"
   }
}

回应:

  

字段“data”必须是JSON数组:   [{ “CC”: “1030626890”, “时间”:1501385514224}]

但是我知道[{"CC":"1030626890","time":1501385514224}]它是一个数组,我不明白这个问题。 我做错了什么?

2 个答案:

答案 0 :(得分:5)

Firebase Cloud Messaging documentation开始,似乎data应该是JSON对象:

{
   "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   "data" : {
     "Nick" : "Mario",
     "body" : "great match!",
     "Room" : "PortugalVSDenmark"
   },
 }

我不确定为什么错误消息会说它需要是一个数组。它就像是"associative array",它实际上只是JSON对象的另一个术语。

答案 1 :(得分:0)

我可能已经来不及了,但是对于那些仍然面临这个问题的人来说,改变之后救了我。

通过将JSON_FORCE_OBJECT添加到json_encode(),它将添加缺少的花括号,因此应该是这样的:

json_encode($fields ,JSON_FORCE_OBJECT));

就是这样。