gpt4 book ai didi

javascript - 如果我重组数据以供使用,如何让 Firebase 自动更新它?

转载 作者:行者123 更新时间:2023-12-03 11:19:39 25 4
gpt4 key购买 nike

如果我使用:

var ref = new Firebase("https://myURL.firebaseio.com/");                
var sync = $firebase(ref);
var firebaseData= sync.$asObject();

firebaseData 将随着 https://myURL.firebaseio.com/ 中的数据更改而更改。他们将保持同步。

如果我重组数据,并将其定义为一些新变量var newStructure,我怎样才能让它与https://myURL.firebaseio.com/同步或firebaseData

有没有办法可以观察 firebaseData 中的变化并调用重组方法?

有没有办法知道 firebaseData 中具体发生了什么变化,并只对 newStructure 进行相关更改?

有没有一种方法可以让 newStructure 直接与 Firebase 同步,尽管使用不同的结构解析数据?

最佳答案

您的变量 firebaseData 代表您的 Firebase 集合。

您对 firebaseData 所做的所有更改都将跨连接同步:

var ref = new Firebase("https://myURL.firebaseio.com/");                
var sync = $firebase(ref);
var firebaseData = sync.$asObject();

您可以观察对象是否发生了任何更改:

firebaseData.$watch(function(event){
console.log("Change made to this firebase object");
// Then you can call a function which could restructure your data:
restructureData(firebaseData, event);
});

因此您的 restructorData 函数可能如下所示:

var restructureData = function(firebaseObj, event){
// This function updates firebase on every change to firebase
// But we don't want to update it again after running this function
if(event.key === "changesMadeToFirebase") return;
firebaseObj.changesMadeToFirebase += 1;
firebaseObj.$save().then(function(){
console.log("data restructured");
}, function(err){
console.log("There was an error:", err);
});
};

这允许您检查对 firebase 进行了多少更改,但对字段“changesMadeToFirebase”的更改除外

虽然这是一个非常小的示例,但您可以在这里找到更多内容:

https://www.firebase.com/docs/web/libraries/angular/api.html

关于javascript - 如果我重组数据以供使用,如何让 Firebase 自动更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27179400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com