在iOS应用程序(swift)中检索数据,Firebase

时间:2016-05-23 16:39:17

标签: swift firebase sensor

我有几个传感器将数据发送到公司服务器。从该服务器,我使用WebHook API将数据推送到我自己的Firebase服务器。我注意到,从公司服务器发送到Firebase服务器时,数据结构会发生变化。数据最初的结构如下:

{
"gatewayMessage":{
   "gatewayID":"111346" ,
   "gatewayName":"CGW2+Verizon+-+111346" ,
   "accountID":"8963",
   "networkID":"14979" ,
   "messageType":"0" ,
   "power":"0",
   "batteryLevel": "101" ,
   "date": "2016-05-23 15:10:29",
   "count":"1",
   "signalStrength": "30",
   "pendingChange": "False"
},
"sensorMessages":[
  {
      "sensorID":"129238" ,
      "sensorName":"Vibration+Meter+5" ,
      "applicationID":"95" ,
      "networkID":"14979" ,
      "dataMessageGUID":"0f871139-a8b2-4df9-b783-effaaa90e1d8",
      "state": "1" ,
      "messageDate": "2016-05-23 15:10:25",
      "rawData":"1.9%7c1%7c13%7c12%7c12%7c21%7c100%7c1",
      "dataType": "Speed|Speed|Speed|Frequency|Frequency|Frequency|Percentage",
      "dataValue": "1.9|1|13|12|12|21|100",
      "batteryLevel": "100",
      "signalStrength": "24",
      "pendingChange": "True"
}
]
}

然后,当数据发送到Firebase并使用Swift在Xcode中检索时,它显示如下:

{
"-KIT9FvatZT2wNfS3JKZ" =     {
    gatewayMessage =         {
        accountID = 8963;
        batteryLevel = 101;
        count = 4;
        date = "2016-05-23 15:08:29";
        gatewayID = 111346;
        gatewayName = "CGW2+Verizon+-+111346";
        messageType = 0;
        networkID = 14979;
        pendingChange = False;
        power = 0;
        signalStrength = 30;
    };
    sensorMessages =         (
                    {
            applicationID = 95;
            batteryLevel = 100;
            dataMessageGUID = "199c0da1-be38-4bac-a36c-c5cdb5f2ed37";
            dataType = "Speed|Speed|Speed|Frequency|Frequency|Frequency|Percentage";
            dataValue = "0|0|0|0|0|0|0";
            messageDate = "2016-05-23 15:08:25";
            networkID = 14979;
            pendingChange = True;
            rawData = "0%7c0%7c0%7c0%7c0%7c0%7c0%7c1";
            sensorID = 129238;
            sensorName = "Vibration+Meter+5";
            signalStrength = 24;
            state = 1;
        }
    );
};

由于这种奇怪的格式化,我无法读入Xcode中的相关数据。老实说,我只关心“sensorMessages”子,特别是“sensorID”,“batteryLevel”和“dataValue”字段。如果有人能够在检索上述数据方面为我提供一些帮助,我们将不胜感激。

同样,重申一下,我只是试图在Xcode中检索“sensorMessages”数据。感谢任何帮助,谢谢!

克里斯

我尝试了以下操作来访问和打印“sensorID”参数:

let ref = Firebase(url:"https://glowing-fire-3705.firebaseio.com/data")

    ref.queryOrderedByChild("sensorMessages/sensorID").observeEventType(.ChildAdded, withBlock:  { snapshot in
        var sensorID = snapshot.value["sensorID"]
        print("the sensor ID is \(sensorID)")
    })

这导致sensorID的值为“nil”,我知道情况并非如此。

0 个答案:

没有答案