2016-08-09 104 views
0

Ich baue gerade ein Web-Frontend für ein Matlab-Programm. Ich benutze Webread/Webwrite, um mit der Firebase Echtzeitdatenbank zu interagieren (obwohl ich aus Kompatibilitätsgründen bald zu urlread2 wechseln werde). Das Matlab-Ende muss regelmäßig Knoten aus der Datenbank löschen. Ich benutze webwrite, um eine POST-Anfrage zu senden und "X-HTTP-Method-Override: DELETE" in die Kopfzeile zu setzen. Dies funktioniert, aber nach ein paar Löschungen funktioniert es nicht mehr, bis Daten zur Datenbank hinzugefügt oder aus ihr entfernt werden. Es scheint völlig zufällig, mein Teamkollege und ich haben versucht, ein Muster für ein paar Tage zu finden, und wir haben nichts gefunden.Firebase-REST-API: Löschen schlägt manchmal fehl

Hier ist der relevante Code Matlab:

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

Wo url unserer Datenbank url und ModKey ist der Schlüssel des Knotens, löschen wir versuchen. Es gibt keine Authentifizierung, da die Datenbank öffentlich ist (Sicherheit ist für uns kein Problem).

Die Datenbank ist ziemlich einfach organisiert. Der Wurzelknoten hat nur eine Menge Kinder. Wir löschen nur ein ganzes Kind (d. H. Wir versuchen nie, die einzelnen Komponenten eines Kindes zu löschen).

Machen wir etwas falsch?

Vielen Dank im Voraus!

Antwort

1

Wir fanden heraus, dass einige der Schlüssel Bindestriche in ihnen hatten, die in ihre ascii Darstellung übersetzt wurden. Der Grund, warum es zufällig erschien, war, dass das Löschen nur auf den Knoten fehlschlug, die einen Bindestrich in ihren Schlüsseln hatten. Als wir sie zurückgeschalten haben, hat alles gut funktioniert.