Entfernen Sie Knoten aus der Firebase-Echtzeitdatenbank basierend auf verschachtelten Werten mithilfe von Zufallsschlüsseln
P粉558478150
P粉558478150 2024-04-03 18:10:45
0
2
489

Ich habe eine Live-Datenbank mit folgender Struktur:

"keys" :
   "randomUserId1" :
       "randomKey1" : timestamp1
   "randomUserId2" :
       "randomKey2" : timestamp2
       "randomKey3" : timestamp3
   "randomUserId3" :
       "randomKey4" : timestamp4

Der Zeitstempelwert ist die Erstellungszeit in Millisekunden. Ich möchte jetzt Firebase-Funktionen und Javascript verwenden, um alle Schlüssel zu löschen, deren Zeitstempel zu alt ist. Das Timing ist nicht so wichtig, daher kann die Löschfunktion bei einem geeigneten Schreibvorgang an einer anderen Stelle in der Datenbank ausgelöst werden.

Ich habe versucht, die Beispielmethode zu ändern, um alte untergeordnete Knoten zu löschen, konnte aber nicht verstehen, wie das mit der oben genannten Datenbankstruktur funktioniert.

Wie schreibe ich eine js-Funktion, um die oben genannten Aufgaben auszuführen?

Ich könnte natürlich unterhalb von „randomKey“ ein Schlüssel/Wert-Paar („timestamp“: timestamp) hinzufügen, wenn das die Sache einfacher machen würde.

P粉558478150
P粉558478150

Antworte allen(2)
P粉765684602

Firebase 函数(并使用 firebase-sdk)删除时间戳早于阈值的键:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.deleteOldKeys = functions.database.ref('/keys/{userId}/{key}')
  .onWrite(async (change, context) => {
    const timestampThreshold = Date.now() - (24 * 60 * 60 * 1000); // Change this to adjust the threshold
    const userId = context.params.userId;
    const key = context.params.key;
    if (!change.after.exists()) {
      // deleted key, no need to check timestamp
      return null;
    }
    const timestamp = change.after.val();
    if (timestamp 

来源参考/灵感

P粉446800329

您提供的链接基于我对删除早于2小时

要使其在您的数据结构上工作,您可以使用 orderByValue() 而不是 orderByChild("timestamp")。所以:

var oldItemsQuery = ref.orderByValue().endAt(cutoff);

要了解相关详情,请参阅 上的 Firebase 文档排序和过滤数据

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage