Ich habe versucht, Einfügen von Daten innerhalb Zeitstempel etwa 10 Sekunden, da mein Programmstart zu ermöglichen, habe ich die folgende DatenstrukturFirebase ermöglichen Einsetzen in Timestamp
- Daten
- Artikel
- Zeit
- Zeit
das Programm beim Start ich den aktuellen Zeitstempel, wie folgend
intime
speichern
firebaseRef.child("time").setValue(ServerValue.TIMESTAMP, listener);
firebaseRef.child("time").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Long timestamp = (Long) dataSnapshot.getValue();
System.out.println(timestamp);
HashMap<String, Object> map = new HashMap<>();
map.put("time", timestamp);
firebaseRef.child("time").setValue(map, listener);
}
@Override
public void onCancelled(FirebaseError error) {
}
});
und ich machte die folgende Sicherheitsregel
"items": {
".read": true,
".write": true,
".validate": "newData.parent().child('time').child('time').val() + 10000 >= now"
}
Aber es hat funktioniert und ich nicht Erlaubnis verweigert. Was ist falsch an meiner Regel?
Worauf deutet 'fireBaseRef' hin? –
Ihre Sicherheitsregel besagt, dass die Zeit größer sein muss als jetzt + 10000, aber Firebase.ServerValue.TIMESTAMP wird jetzt auf diesen Wert gesetzt. – Kato
@FrankvanPuffelen firebaseRef es ist der Referenz-Code meiner App 'Firebase firebaseRef = neuer Firebase (" meine App-URL ")' – SaNtoRiaN