我正在尝试在我的应用中创建一个“收藏夹”部分,您点击按钮并将其添加到firebase中的用户收藏夹列表中。我正在使用离子平台。
我创建了一个工厂来处理他们进来的收藏夹。我使用getAuth()函数来获取唯一的userID,这样我就可以在用户登录时将其拉出来。这是我的尝试,但我没有得到我想要的结果,这简直就是:
< userid>:
{
0:“fav1”
1:“fav2”
}
.factory('Favourites',function($firebaseArray){
var ref = new Firebase("https://experiencett.firebaseio.com/");
var authData = ref.getAuth();
var favs = $firebaseArray(new Firebase('https://experiencett.firebaseio.com/favourites/'+authData.uid+''));
return {
all: function() {
return favs;
},
add: function(){
var up=new Firebase('https://experiencett.firebaseio.com/favourites/');
var usersref=up.child(authData.uid);
usersref.push({3:"paria"});
},
答案 0 :(得分:1)
当您致电function main() {
alert("Welcome to the program");
var fatGrams;
var calories;
var percentage;
getFatGrams(fatGrams);
getCalories(fatGrams,calories);
caloriesPercentage(fatGrams,calories);
displayPercentage(percentage);
}
function getFatGrams(fatGrams) {
fatGrams = prompt("Enter the number of fat grams in your food item");
while(fatGrams < 0){
alert("Error, the fat grams cannot be less than 0.");
fatGrams = prompt("Enter the new number of fat grams.");
}
return fatGrams;
}
function getCalories(fatGrams,calories) {
calories = prompt("Enter the number of calories in your food item.");
while (calories < 9 || calories > (fatGrams * 9)){
alert("Error, the calories cannot be less than 9 or exceed the fat grams * 9");
calories = prompt("Enter the new number of calories");
}
return calories;
}
function caloriesPercentage(fatGrams,calories){
percentage = (fatGrams * 9) / calories;
alert("The amount of calories that come from fat is, " + percentage);
return percentage;
}
function displayPercentage(percentage){
if(percentage < 0.3){
alert("The food is low in fat.");
}
else{
alert("The food is not too low in fat.");
}
}
main();
alert("End of program");
时,您正在生成唯一ID。虽然这对许多用例来说很好,但是因为你想要控制所写的路径,所以它并不好。
由于您已使用push()
构建路径,因此只需使用child(authData.uid)
进行更新即可:
update()
这将更新usersref.child(authData.uid).update({3: "paria"});
的现有值或为3
写下新值,而3
下的所有其他键都不会被修改。
或者,如果您要替换/users/<uid>
中已存在的数据,则可以使用users/<users>
代替set()
。
这一点已在storing user data部分的Firebase JavaScript SDK中进行了介绍。 AngularFire文档中没有介绍它,因为Angular没有任何特定内容。