Ich sende Daten aus einem Formular an meine Datenbank. Wie ich richtig verstanden habe, erstellt die Verwendung von .push () eine eindeutige ID, an die meine Daten angehängt und hochgeladen werden. Ich muss jetzt die gleichen Daten abrufen und dann einen neuen ID-Eintrag hinzufügen. Ich kann die Daten jedoch nicht referenzieren, da sie unter der eindeutigen ID gespeichert sind, die mit der Methode .push () erstellt wurde.
exports.addUser = functions.https.onRequest(async (req, res) => { //Adds data from the form to the database
cors(req, res, async () => {
// Grab the message body parameter.
const entry = req.body;
// Push the new message into the Realtime Database using the Firebase Admin SDK.
const snapshot = await admin.database().ref('entries/users/').push(entry);
console.log('my new shiny id is ' + snapshot.key());
// Redirect with 303 SEE OTHER to the URL of the pushed object in the Firebase console.
res.redirect(303, snapshot.ref.toString());
})
});
//Function to generate a random ID and update into the entry from the form on the database.
exports.generateID = functions.database.ref('entries/users/').onCreate((snapshot, context) => {
console.log(snapshot.val());
const original = snapshot.val();
console.log(context);
console.log(snapshot.key());
const dev = '0eeb94ca-3426-46ca-964d-a9bdd7d00ef0';
var random = Math.random().toString(36).substring(7);
const code = uuidv5('user-' + random, dev);
return snapshot.ref.update({
userID: code
});
})
Hier ist ein Bild der Datenstruktur in meiner Echtzeitdatenbank.
Ich denke, Sie wollten in Ihrer Funktion einen Platzhalter verwenden, um diese ID zu erfassen (und auch nur auf diesem neuen Knoten auszulösen):
functions.database.ref('entries/users/{id}').onCreate((snapshot, context) => {
Jetzt können Sie context.params.id
diese ID abrufen und einfacher unter diesen neuen Knoten schreiben.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen