Maison > Java > javaDidacticiel > Comment sélectionner un produit aléatoire dans une base de données Firebase dans Node.js ?

Comment sélectionner un produit aléatoire dans une base de données Firebase dans Node.js ?

Barbara Streisand
Libérer: 2024-10-28 20:10:02
original
305 Les gens l'ont consulté

How to Select a Random Product from a Firebase Database in Node.js?

Comment récupérer un produit aléatoire unique à partir d'une base de données Firebase dans Node.js :

Dans ce contexte, nous visons à récupérer un seul , produit aléatoire provenant d'un nœud nommé "products" dans une base de données Firebase. Voici deux approches :

Approche classique :

Cela implique de récupérer tous les enregistrements de produits du nœud « produits » et d'en sélectionner un au hasard :

const rootRef = firebase.database().ref();
const productsRef = rootRef.child("products");

// Listen for a single snapshot of the products node
productsRef.once('value').then((snapshot) => {
  // Get all product names
  const productNames = [];
  snapshot.forEach((child) => {
    productNames.push(child.val().name);
  });

  // Select a random product name
  const randomProductName = productNames[Math.floor(Math.random() * productNames.length)];

  // Get the specific product data using the random name
  rootRef.child(`products/${randomProductName}`).once('value').then((product) => {
    console.log(product.val());
  });
});
Copier après la connexion

Approche dénormalisée :

Dans cette technique, nous créons un nœud distinct appelé « productIds » qui contient uniquement les identifiants de tous les produits. Cela nous permet de récupérer un identifiant de produit aléatoire sans récupérer tous les enregistrements de produits :

const rootRef = firebase.database().ref();
const productIdsRef = rootRef.child("productIds");

// Listen for a single snapshot of the productIds node
productIdsRef.once('value').then((snapshot) => {
  // Get all product IDs
  const productIds = Object.keys(snapshot.val());

  // Select a random product ID
  const randomProductId = productIds[Math.floor(Math.random() * productIds.length)];

  // Get the specific product data using the random ID
  rootRef.child(`products/${randomProductId}`).once('value').then((product) => {
    console.log(product.val());
  });
});
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal