2016-08-09 78 views
0

我目前正在爲Matlab程序構建一個Web前端。我使用webread/webwrite與Firebase實時數據庫進行交互(儘管出於兼容性的原因,我很快將轉向使用urlread2)。 Matlab端必須定期從數據庫中刪除節點。我通過使用webwrite發送POST請求並在標題中放入「X-HTTP-Method-Override:DELETE」來實現此目的。這可以工作,但是在刪除幾次後,它將停止工作,直到數據添加到數據庫或從數據庫中刪除數據。這看起來完全是隨機的,我的隊友和我一直試圖找到一個模式幾天,我們什麼也沒有找到。Firebase REST API:刪除有時會失敗

下面是相關的Matlab代碼:

modurl = strcat(url, modkey, '.json'); 
modurlstr = char(modurl); 
webop = weboptions('KeyName', 'X-HTTP-Method-Override', 'KeyValue','DELETE'); 
webwrite(modurlstr, webop); 

其中URL是我們的數據庫URL和modkey是我們正在試圖刪除節點的關鍵。沒有認證,因爲數據庫設置爲公共(安全對我們來說不是問題)。

數據庫組織的很簡單。根節點只有一堆孩子。我們只刪除一個整個孩子(即我們從未嘗試刪除孩子的各個組成部分)。

我們做錯了什麼?

在此先感謝!

回答

1

我們發現一些鑰匙中有連字符,它們被翻譯成它們的ascii表示。它看起來是隨機的原因是因爲刪除僅在密鑰中有連字符的節點上出現。當我們將它們切換回來時,一切正常。