/ / Google Apps-Skript UrlFetchApp.fetch HTTP PUT Anfrage an Firebase funktioniert nicht - Google Apps-Skript, Firebase

Google Apps Script URLFetchApp.fetch HTTP PUT Anfrage an Firebase funktioniert nicht - Google-Apps-Skript, Firebase

Ich versuche, Daten in eine Firebase-Datenbank zu schreibenVerwenden der HTTP-PUT-Anforderung von Google Apps Script. Hier ist, was ich für Code habe. Ich habe jede Zeile getestet und bis auf die eigentliche PUT - Anfrage funktioniert alles.

Webseite mit einer Schaltfläche.

<section>
<input onclick="WriteInput()" type="button" value="Save Input">
</section>

<script>
function onSuccess() {
alert("on success ran");

};

function onFailure() {
alert("on failure ran");

};

function WriteInput() {
alert("it ran");
google.script.run.withFailureHandler(onFailure)
.withSuccessHandler(onSuccess)
.putToFire();
}

</script>

Dies ist der serverseitige .gs-Code:

function doGet(){
return HtmlService.createTemplateFromFile("WriteToFirebase")
.evaluate() // evaluate MUST come before setting the NATIVE mode
.setTitle("Test Write")
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

function putToFire() {

var payload =
{
"first" : "Jack",
"last" : "Sparrow"
};

var options =
{
"method" : "put",
"payload" : payload
};


UrlFetchApp.fetch("https://SampleChat.firebaseIO-demo.com/users/fred/name.json", options );

Logger.log(options);

}

Dies ist die Google-Dokumentation zum Ausgeben einer HTTP-Anfrage mit Apps Script:

Holen Sie sich die URL der Google-Dokumentation

Dies ist die Firebase-REST-API-Dokumentation:

Firebase-REST-API

im cURL -X soll die Art der Anfrage festlegen. Z.B. PUT, POST usw. Und -d ist das Anzeichen dafür, dass Daten folgen sollen: Der Abgleich mit Google Fetch ist das zu setzen params.

Mir muss nur eine Syntaxeinstellung fehlen oder so.

Antworten:

1 für die Antwort № 1

Ich habe tatsächlich eine Antwort auf mein Problem gefunden. Ich kann mich nicht erinnern, was die Fehlermeldung war. Ich habe mich geändert

DIESE:

var options =
{
"method" : "put",
"payload" : payload
};

ZU DIESEM:

var options = {"method" : "put", "payload" : payload};

Und es fing an zu funktionieren. Ich vermute, dass der mehrzeilige Code hatte end of line return Zeichen drin, die Firebase nicht analysieren würde. Das ist nur meine Vermutung.

Dieses Beispiel zeigt payload, options und das Apps Script UrlFetchApp.fetch Bedienung.

var payload = "{"aa" : "" + UserID + "", "ab" : "" + Maker + "", "ac" : " +
AskingPrice + ", "ad" : "" + Type +
"", "ae" : "" + Description + "", "af" : "" + Function + "", "ag" : "" +
Cosmetic + "", "ah" : "" + dbID +
"", "ai" : "" + IPaddr + ""}";

var options = {"method" : "put", "payload" : payload};

UrlFetchApp.fetch("https://MyFireBaseDatabaseName.com/" + Ctgry + "/"
+ dbID + "/.json", options );