在Node Firebase 中,您有一個產品集合並且需要展示單一的、隨機的產品。雖然您可以檢索所有產品,然後隨機選擇一個,但如果您有大量產品,這種方法就會變得低效。
為了避免下載所有產品,您可以使用經典方法:
程式碼:
<code class="js">const productsRef = FirebaseDatabase.getInstance().getReference().child("products"); const productNames = []; productsRef.once('value').then(snapshot => { snapshot.forEach(child => { productNames.push(child.child("name").val()); }); const randomIndex = Math.floor(Math.random() * productNames.length); const selectedProduct = productNames[randomIndex]; // Display the selected product console.log(selectedProduct); });</code>
對於較大的集合,建議使用非規範化方法:
資料庫結構:
<code class="json">Firebase-root | --- products | | | --- productIdOne | | | | | --- //details | | | --- productIdTwo | | | --- //details | --- productIds | --- productIdOne: true | --- productIdTwo: true | --- //And so on</code>
程式碼:
<code class="js">const productIdsRef = FirebaseDatabase.getInstance().getReference().child("productIds"); const randomId = Math.floor(Math.random() * Object.keys(productIdsRef).length); const selectedId = Object.keys(productIdsRef)[randomId]; const productsRef = FirebaseDatabase.getInstance().getReference().child("products"); const selectedProductRef = productsRef.child(selectedId); selectedProductRef.once('value').then(snapshot => { // Display the selected product console.log(snapshot.val()); });</code>
程式碼:
這兩種方法都可以有效地從大量集合中檢索隨機產品,同時最大限度地減少資料傳輸。選擇最適合您的特定用例和效能要求的方法。以上是如何從 Node 中的大型 Firebase 集合中高效檢索單一隨機產品?的詳細內容。更多資訊請關注PHP中文網其他相關文章!