我試圖在使用Firesharp的現有.Net程序中實現Firebase。正在使用Firebase將一臺計算機上更改的信息傳播到其他可能具有先前加載的相同信息的計算機上。Firebase行爲改變取決於構建的程序
我試圖讓Firebase存儲對象的JSON表示作爲特定鍵的值。
當我建立在VS 2013和本地運行該程序,則值出現像這樣:
正如你可以在圖片中看到的JSON字符串,它是價值在於它的所有特殊字符轉義並且鍵「-Kkvvz8vdPqvZWDmNgHf」的值是單個字符串。雖然我意識到這可能不是預期的結構,但在這一點上,由於訂閱通過Firesharp工作的方式,此結構最適合我們的實現。
以上行爲是我在本地PC上通過我的開發環境進行編譯時看到的結果,每天晚上我們都會使用TeamCity編譯前一天的更改以及編譯代碼的代碼時,我在Firebase中接收到完全不同的行爲:
圖片本質上示出了火力地堡走的是對象的JSON表示和打破其屬性,在樹中單個節點。因此,程序對節點「288110_280」的訂閱正在接收多個更新,每個屬性一個,而不是代表需要處理的更改對象的一個更新。我們已經驗證了TeamCity的配置模擬了我們的開發環境,並且我已經在安裝結束時在應用程序文件夾中執行了1對1的dll檢查,並在我的開發環境中完成了構建的輸出,並且該dll完全匹配。
所以我的主要問題是,
- 什麼決定了火力地堡是否解析JSON字符串,它被賦予?
- 如果Firebase確實將JSON解析爲單個屬性,是否有可能以這樣的方式訂閱父節點:我們將收到一個包含所有屬性的更新,而不是單獨的屬性?
- 有沒有一種方法可以強制Firebase按照第一個屏幕截圖中的說明操作?
**編輯:
我相信TeamCity的不一致是一個紅色的鯡魚。我能夠在兩臺獨立的機器上安裝Teamcity編譯的程序。一個產生第一個結果,一個產生第二個結果。所以這個新的信息基本上改變了問題,我如何確保跨不同機器的一致行爲?
你如何逃避JSON字符串?你的目標是什麼.Net版本,所有的機器都是最新的.Net? https://msdn.microsoft.com/en-us/library/hh925567(v=vs.110).aspx –
我正在生成未轉義的JSON字符串,並已驗證這是什麼被傳遞到Firesharp轉義在傳遞給Firesharp的JSON字符串時(有時)正在完成,我無法確定它是由Firesharp還是由Firebase完成。我們的目標是4.5.1,我們要求將4.5.1安裝在任何運行我們程序的PC上。 –