IOT: Firebase 最近問題已解決 作者 已更新 firebase-arduino

最近忙都沒再碰這一塊,
突然在

IOT 雲端控制LED Arduino+Google Firebase 篇

有留言說:連不上了....
****先講已解決****

firebase-arduino 作者已更新

我是先刪掉原本的  libraries 內的 firebase-arduino-master
再重開 IDE 再用ZIP 安裝一遍就好了
然後 這一行金鑰我拿掉了
#define FIREBASE_AUTH ""
*******************************
原因:(HTTPS 問題) 
我本以為是資料庫金鑰的問題....但無關(一開始就無關)
在查找原因時...(本來是沒空....但一根針就在那..不知原因睡不好)
發現有人用Node.js 或是台灣有一家賣套裝的圖形式開發
在連接 firebase 時根本就沒有設 金鑰 也行
所以詳細研究之後 
關鍵在 firebase "規則設定" 設讀寫 true 就是都不需認證 就是不用金鑰
當初被誤導...也是人云亦云
所以 #define FIREBASE_AUTH ""  改成這樣也行

由於 firebase 只提供 js Android IOS 幾種程式庫
我想用 C# 去了解他們的作用 
不過就是傳 Json 有那麼麻煩嗎?
先是下載 FirebaseDatabase.net  來看還是真麻煩......

後來在 Youtb 上看到 C# 如何用 WebRequest 直接 新增 刪除 更新 資料

其實跟我想的差不多 撇開 認證問題
麻煩的就是如何處理 JSON
然後就是送連接資料
 var request = WebRequest.CreateHttp("https://xxxxx.firebaseio.com/.json");
            request.Method = "POST";
            request.ContentType = "application/json";
            var buffer = Encoding.UTF8.GetBytes(json);
            request.ContentLength = buffer.Length;
            request.GetRequestStream().Write(buffer, 0, buffer.Length);
            var respon = request.GetResponse();
            json = (new StreamReader(respon.GetResponseStream())).ReadToEnd();
 變更 request.Method 
request.Method = "POST"; 新增
request.Method = "PATCH"; 更新
request.Method = "GET"; 讀取
request.Method = "DELETE"; 刪除
就是這樣
對 IOT 來說 可以 撇開 認證問題 因為只是簡單動作
想說既然這樣要不要就用
ESP8266 的 HTTPClient 來搞一下不就好了
........
不對 
是 Https 跟 Http 差很多...Google 一直在推這個,該不會改了吧
看一下C++原始碼,雖功力沒他好,但應該是這問題了 
這下要研究 WiFiClientSecure
越弄複雜
我想 原作者 應該也是會發現這問題才對,
所以我就回去看一下
如果沒人提醒他..那我至少用破英文告知一下
他如果能改...就天下太平
結果一看有更新了...更新完正常了
天下太平
***************************
另外
JsonObject& tempTime = temperatureObject.createNestedObject("timestamp");
這不是日期時間..我認知錯了























留言

  1. 想問下~我視窗出現 以下錯誤,是在FirebaseArduino.h裡面,這有人遇過嗎?Arduino版本用1.8.5
    /Users/huifengchen/Documents/Arduino/libraries/firebase-arduino-master/src/FirebaseHttpClient_Esp8266.cpp: In member function 'virtual std::string FirebaseHttpClientEsp8266::errorToString(int)':
    /Users/huifengchen/Documents/Arduino/libraries/firebase-arduino-master/src/FirebaseHttpClient_Esp8266.cpp:83:11: error: 'errorToString' is not a member of 'HTTPClient'
    return HTTPClient::errorToString(error_code).c_str();

    回覆刪除
    回覆
    1. 開發版管理員的esp8266要更新到最新版
      我用2.0.0也不行
      用2.4.1就好了

      刪除
  2. 執行後出現這樣的錯誤,可以幫忙我嗎,已經試過很多地方了 還是不行
    謝謝~

    In file included from D:\2.ALL WORK\arduino\arduino\DATA_MCU\DATA_MCU.ino:1:0:

    C:\Users\USER\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:26:25: fatal error: ArduinoJson.h: No such file or directory

    #include
    ^
    compilation terminated.

    exit status 1
    開發板 NodeMCU 1.0 (ESP-12E Module) 編譯錯誤。

    回覆刪除
    回覆
    1. 到程式資料庫將ArduinoJson 降級5.13.2版本試試

      刪除

張貼留言

熱門文章