在 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中文网其他相关文章!