如何从 push() firebase 中提取 id?
how to pull id from push() firebase?
谁能解释一下为什么 firebase 唯一 ID 以“-”开头?
我有两个问题:
如果这个请求有任何return,我如何从推送中获取id?
firebase.database().ref('carts/-KJp9LdQkEN1DtuCLjfP/pro').push({
name:name,
amount:am
});
在这一部分,我正在尝试处理回调快照。我从这个 json 中提取数据的所有尝试都失败了。
JSON.parse(data) == error
snapshot.key(); == error
data[0] == error
firebase.database().ref('carts/').on('value', function(snapshot) {
var data = snapshot.val();
console.log(data);
});
这些键(通常称为 "push ids")以 -
开头,因为这是用于生成它们的字典中的第一个字符。看到这个 blog post explaining how they are generated.
如果您尝试获取要添加的项目的推送 ID,您可以这样做:
var newRef = firebase.database().ref('carts/-KJp9LdQkEN1DtuCLjfP/pro').push();
console.log(newRef.key);
newRef.set({
name:name,
amount:am
});
如果你想在监听器中确定一个项目的键,你可以这样做:
firebase.database().ref('carts/').on('value', function(snapshot) {
console.log(snapshot.key); // carts
var data = snapshot.val();
console.log(data);
});
如果您正在监听 children,则更有可能通过以下方式获得密钥:
firebase.database().ref('carts/').on('child_added', function(snapshot) {
console.log(snapshot.key); // -KJ....
var data = snapshot.val();
console.log(data);
});
或者像这样:
firebase.database().ref('carts/').on('value', function(snapshot) {
snapshot.forEach(function(cartSnapshot) {
console.log(cartSnapshot.key); // -KJ....
console.log(cartSnapshot.val());
});
});
谁能解释一下为什么 firebase 唯一 ID 以“-”开头?
我有两个问题:
如果这个请求有任何return,我如何从推送中获取id?
firebase.database().ref('carts/-KJp9LdQkEN1DtuCLjfP/pro').push({
name:name,
amount:am
});
在这一部分,我正在尝试处理回调快照。我从这个 json 中提取数据的所有尝试都失败了。
JSON.parse(data) == error
snapshot.key(); == error
data[0] == error
firebase.database().ref('carts/').on('value', function(snapshot) {
var data = snapshot.val();
console.log(data);
});
这些键(通常称为 "push ids")以 -
开头,因为这是用于生成它们的字典中的第一个字符。看到这个 blog post explaining how they are generated.
如果您尝试获取要添加的项目的推送 ID,您可以这样做:
var newRef = firebase.database().ref('carts/-KJp9LdQkEN1DtuCLjfP/pro').push();
console.log(newRef.key);
newRef.set({
name:name,
amount:am
});
如果你想在监听器中确定一个项目的键,你可以这样做:
firebase.database().ref('carts/').on('value', function(snapshot) {
console.log(snapshot.key); // carts
var data = snapshot.val();
console.log(data);
});
如果您正在监听 children,则更有可能通过以下方式获得密钥:
firebase.database().ref('carts/').on('child_added', function(snapshot) {
console.log(snapshot.key); // -KJ....
var data = snapshot.val();
console.log(data);
});
或者像这样:
firebase.database().ref('carts/').on('value', function(snapshot) {
snapshot.forEach(function(cartSnapshot) {
console.log(cartSnapshot.key); // -KJ....
console.log(cartSnapshot.val());
});
});