[英]How to store array in firebase using Angular
通过使用push()
,您可以生成一个新节点,该节点的 ID 由 Firebase ( -Lz6G...
) 自动生成。
如果您想编写一个具有您生成的 id 的节点(在您的情况下为0
、 1
、 2
),您将必须使用set()
方法。
您在您的案例中可能遇到的问题(因为您一个一个地创建像{bItem: this.bucketListItem, isCompleted: false}
这样的对象)是您不知道数据库中最后一个 id 是什么。 所以你将不得不查询数据库以找到最后一个 id 的值并增加它(最好通过事务)。
或者,如果您能够使用对象数组批量创建对象,如下所示,节点 ID 将遵循0
、 1
、 2
序列。
您可以尝试以下操作:
var bucketListItems = [
{ bItem: 'Item1', isCompleted: false },
{ bItem: 'Item2', isCompleted: false }
];
const bucketRef = this.angularFireDb.list('/bucketList/');
bucketRef.set(uid, bucketListItems);
我尝试了一些东西并想通了一些东西。 发布它以便它可以帮助任何人寻找相同的东西。
在我的组件中,我首先将对象推送到一个数组中,然后将该数组发送到服务
this.bucketListArray.push({bItem: this.bucketListItem, isCompleted: false});
this.authService.saveUserBucketListInDb(this.bucketListArray);
在我的服务中,我正在做的是:
saveUserBucketListInDb(bucketListItems: Array<object> ) {
this.angularFireDb.object('/bucketList/' + uid).set({
bucketListItems
});
}
谢谢你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.