Maison  >  Article  >  Java  >  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
Barbara Streisandoriginal
2024-10-28 20:10:02141parcourir

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());
  });
});

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());
  });
});

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:
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