首页 > 解决方案 > 将数据推送到具有相同 id 的两个不同节点

问题描述

我目前正在尝试使用 jquery 将一些数据推送到 Firebase。我工作正常,但我无法将数据推送到具有相同 ID 的两个不同子节点(ref 和 ref2)。

换句话说,当我使用我的代码时,ref 上推送的数据与 ref2 中推送的数据的 id 不同。

我尝试了很多东西,但没有得到预期的结果。

function retrievedata(){

var iduser = window.user;
var uiduser = iduser.uid;

var database = firebase.database();
var ref = database.ref('productspushed'+'/'+uiduser);
var ref2 = database.ref('products');

  $.get(window.location.href, function(data){ 

  $("tr.woocommerce-cart-form__cart-item.cart_item").each(function(i, obj) {
      const name = $('td.product-name', obj).text();
      const nameok = name.trim();
      console.log(nameok);

      const url = $('a', obj).eq(1).attr('href');
      console.log(url);

      const imgurl = $('img.attachment-woocommerce_thumbnail.size-woocommerce_thumbnail', obj).attr('srcset').split(',').pop().trim().split(' ')[0];
      console.log(imgurl);

      const price = $('span.woocommerce-Price-amount.amount', obj).eq(0).text().replace(/€/, '');
      console.log(price);

      const data = {title: nameok, 
      imgurl: imgurl,
      price: price,
      url: url,
      };

        ref2.push(data);
        ref.push(data);

      })
  })


};

我想将数据推送到具有相同 ID 的 ref 和 ref2 。如果你们能给我一个提示,那将对我有很大帮助。

标签: javascriptfirebasefirebase-realtime-database

解决方案


正如文档所述( https://firebase.google.com/docs/database/admin/save-data?hl=en-us ) ,您不能像现在那样直接使用 push :“调用 push() 将返回引用新的数据路径,您可以使用它来获取密钥或为其设置数据。以下代码将产生与上述示例相同的数据,但现在我们可以访问生成的唯一密钥“

但在同一页有你的收获:

// Generate a reference to a new location and add some data using push()
var newPostRef = postsRef.push();

// Get the unique key generated by push()
var postId = newPostRef.key;

推荐阅读