我正在使用firebase + angularfire来处理一个项目,该项目涉及多个用户同时编辑数据(这会使对象成为理想对象)以及快速排序和过滤数据的需求(非常适合数组)。 那么,对我来说会更好:
1)使用FirebaseObject,然后使用角度toArray过滤器进行排序
2)使用FirebaseArray并确保使用$ add来确保使用唯一ID(甚至将推送ID作为推送对象本身的属性存储)。
目前,我们正在使用第二个选项,这引出了我的第二个问题: 当我使用$ push时,如何将ref.key()返回给控制器? 修改API指南中的示例:
char const *str1 = "bleah 1";
unsigned char str2[] = "bleah 2";
如何在调用addItem函数时返回要返回的id变量?即使我在列表外声明一个变量。$ add function并在函数中设置变量,我得到一个未定义的结果。
答案 0 :(得分:1)
一种方法是回退使用Firebase的常规JavaScript SDK。
curl --key client.key --cert client.crt:clientPassword mySecureSite.com\api\call
但如果您需要新参考的var list = $firebaseArray(ref);
var addItem = function(itemDataObject) {
var newItemRef = ref.push(itemDataObject);
var id = newItemRef.key();
console.log("added (or still adding) record with id " + id);
return id;
};
以外的其他内容,那么您需要等到它可用。
在这种情况下,最简单的方法是返回承诺:
key()
接下来会发生什么,取决于调用代码以及您希望它做什么。
由于您想要返回异步操作的结果,您可以从此处阅读我的答案及其中的链接中受益:Asynchronous access to an array in Firebase
答案 1 :(得分:0)