javascript - 将数据推送到具有相同 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 。如果你们能给我一个提示,那将对我有很大帮助。
解决方案
正如文档所述( 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;
推荐阅读
- c++ - 使用 C/C++ 中的派生类成员变量将参数传递给 Base 构造函数
- java - 为什么 Thymeleaf 找不到我的对象?
- java - Java 转换列表
列出 - python - 当省略 if 后的空格时,为什么 python3 内联 if 语句不会引发 SyntaxError?
- ssas - 在 SSAS 中创建 MDX 查询时从不同维度读取数据
- powershell - 查找字符串中任何一个数组元素的第一次出现 - Powershell
- python - 将文本保存到 docx 文件 python
- amazon-web-services - AWS ELB:503 服务暂时不可用
- python-3.x - Python - Selenium XPATH 查询不匹配
- php - postgresql 查询中的参数资源问题