如何使用 Angular 在 firebase 中存储数组
How to store array in firebase using Angular
我需要使用 Angular 在 Firebase 中存储数组。我无法做到这一点。请帮忙。
我得到的是:
我要的是这个:
-|bucketList
|-zjSaw3efefsfsdffg
0-| bItem: 'thailand'
| isCompleted: false
1-| bItem: kasar devi
| isCompleted: false
等等
我正在这样做:
const bucketRef = this.angularFireDb.list('/bucketList/' + uid );
bucketRef.push(bucketListItems);
通过使用 push()
,您可以生成一个新节点,其 ID 由 Firebase (-Lz6G...
) 自动生成。
如果你想用你生成的id写一个节点(0
,1
,2
在你的情况下)你将不得不使用set()
方法。
在你的案例中你可能遇到的问题(因为你创建了像{bItem: this.bucketListItem, isCompleted: false}
一个一个的对象)是你不知道最后一个id是什么存在于数据库中。因此,您将不得不查询数据库以找到最后一个 id 的值并将其递增(最好通过 transaction)。
或者,如果您能够使用对象数组批量创建对象,如下所示,节点 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
});
}
这最终给了我想要的东西,即:
谢谢。
我需要使用 Angular 在 Firebase 中存储数组。我无法做到这一点。请帮忙。
我得到的是:
我要的是这个:
-|bucketList
|-zjSaw3efefsfsdffg
0-| bItem: 'thailand'
| isCompleted: false
1-| bItem: kasar devi
| isCompleted: false
等等
我正在这样做:
const bucketRef = this.angularFireDb.list('/bucketList/' + uid );
bucketRef.push(bucketListItems);
通过使用 push()
,您可以生成一个新节点,其 ID 由 Firebase (-Lz6G...
) 自动生成。
如果你想用你生成的id写一个节点(0
,1
,2
在你的情况下)你将不得不使用set()
方法。
在你的案例中你可能遇到的问题(因为你创建了像{bItem: this.bucketListItem, isCompleted: false}
一个一个的对象)是你不知道最后一个id是什么存在于数据库中。因此,您将不得不查询数据库以找到最后一个 id 的值并将其递增(最好通过 transaction)。
或者,如果您能够使用对象数组批量创建对象,如下所示,节点 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
});
}
这最终给了我想要的东西,即:
谢谢。