2016-06-03 3 views
0

Um einen Gruppenersteller mit Gruppenmitgliedern zu verknüpfen, möchte ich, dass der Gruppenersteller eine Verbindungszeichenfolge einreicht, die Gruppenmitglieder dann verwenden können, um der Gruppe beizutreten.Wie kann ich einen Unterordner im Firebase einmal EXAKT schreiben lassen?

Sobald die Verbindungszeichenfolge erstellt wird, möchte ich jedoch nicht, dass jemand außer dem Ersteller die Zeichenfolge oder die Daten unter der Zeichenfolge entfernt oder überschreibt.

In meinem Javascript kann ich einfach eine Prüffunktion sehen schreiben, wenn es vorhanden ist:

function tryToAddConnectionString(uid, desiredConnectionString) 
{ 
    firebase.database().ref('/connectionStrings/' + desiredConnectionString).once('value').then(function(snapshot){ 
     if(snapshot.val()==null) 
     { 
      //There is no data therefore there is no connection string, so create one. 
      firebase.database().ref('connectionStrings/' + desiredConnectionString).set({ 
       owner: uid }); 
     } 
     else 
     { 
      //Connection String already exists. Throw "already exists" message 
     } 
    }); 
} 

Aber der einen böswilligen Hacker nicht aus, die in seine/ihrer Konsole stoppen und die Eingabe

firebase.database().ref('connectionStrings/' + desiredConnectionString).set(null); 

Welches löscht/übernimmt die Gruppe.

Gibt es eine Regel, die ich einstellen kann, um das zu beheben? Auch unter

'/connectionStrings/'+desiredConnectionString+'members' 

Ich möchte, dass die Leute sich als Mitglieder hinzufügen können.

Zur Erinnerung: Ich bin auf der Suche nach einer Regel, die es jedem erlaubt, eine Verbindungszeichenfolge zu erstellen, aber nur der Ersteller kann die Verbindungszeichenfolge löschen oder den Besitzer-Unterordner ändern, aber jeder kann den Mitgliederordner lesen/schreiben.

Vielen Dank im Voraus.

Antwort

2

Sie können ganz einfach tun, dass mit Sicherheitsregeln:

//add a condition to verify that the node doesn't exist or the 
//You must add to your node the aid of the creator 
".write":"!data.exist() || auth.uid === data.child('creator')" 

Sie sehen können, was sonst können Sie hier konfigurieren Security Rules Firebase

+0

ich Sie Ihre DB-Struktur setzen wäre es hilfreich – Ymmanuel

+0

Dank sein das ist genau das, was ich suche ich –

Verwandte Themen