How do you get Firebase collection items along with their keys
My function returns items that do not have keys.
getByYear(yr) {
return this.db
.collection('contracts', ref => ref.orderBy('amount', 'desc').where('financialYear', '==', yr))
.valueChanges();
}
How do i include item keys in the returned set when using collections with angularfire2. All solutions i have seen seem to work with lists and not collections.

add a comment |
My function returns items that do not have keys.
getByYear(yr) {
return this.db
.collection('contracts', ref => ref.orderBy('amount', 'desc').where('financialYear', '==', yr))
.valueChanges();
}
How do i include item keys in the returned set when using collections with angularfire2. All solutions i have seen seem to work with lists and not collections.

1
If your preferred method of getting document data from Firestore involves eliminating the document IDs from the query results, you'll need to put the id of the document into the document itself as a new field. Or, you'll have to query in such a way that you get an entire DocumentSnapshot object to deal with (which has anid
property).
– Doug Stevenson
Jan 1 at 20:45
add a comment |
My function returns items that do not have keys.
getByYear(yr) {
return this.db
.collection('contracts', ref => ref.orderBy('amount', 'desc').where('financialYear', '==', yr))
.valueChanges();
}
How do i include item keys in the returned set when using collections with angularfire2. All solutions i have seen seem to work with lists and not collections.

My function returns items that do not have keys.
getByYear(yr) {
return this.db
.collection('contracts', ref => ref.orderBy('amount', 'desc').where('financialYear', '==', yr))
.valueChanges();
}
How do i include item keys in the returned set when using collections with angularfire2. All solutions i have seen seem to work with lists and not collections.


edited Jan 1 at 20:44


Doug Stevenson
80.2k996114
80.2k996114
asked Jan 1 at 20:25


Cengkuru MichaelCengkuru Michael
2,3011520
2,3011520
1
If your preferred method of getting document data from Firestore involves eliminating the document IDs from the query results, you'll need to put the id of the document into the document itself as a new field. Or, you'll have to query in such a way that you get an entire DocumentSnapshot object to deal with (which has anid
property).
– Doug Stevenson
Jan 1 at 20:45
add a comment |
1
If your preferred method of getting document data from Firestore involves eliminating the document IDs from the query results, you'll need to put the id of the document into the document itself as a new field. Or, you'll have to query in such a way that you get an entire DocumentSnapshot object to deal with (which has anid
property).
– Doug Stevenson
Jan 1 at 20:45
1
1
If your preferred method of getting document data from Firestore involves eliminating the document IDs from the query results, you'll need to put the id of the document into the document itself as a new field. Or, you'll have to query in such a way that you get an entire DocumentSnapshot object to deal with (which has an
id
property).– Doug Stevenson
Jan 1 at 20:45
If your preferred method of getting document data from Firestore involves eliminating the document IDs from the query results, you'll need to put the id of the document into the document itself as a new field. Or, you'll have to query in such a way that you get an entire DocumentSnapshot object to deal with (which has an
id
property).– Doug Stevenson
Jan 1 at 20:45
add a comment |
1 Answer
1
active
oldest
votes
From the AngularFire documentation for valueChanges
:
When would you not use it?
When you need a more complex data structure than an array or you need the id of each document to use data manipulation methods. This method assumes you either are saving the id to the document data or using a "readonly" approach.
Since you need the ID of the documents, either use `documentChanges or persist the ID into the document too.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53998696%2fhow-do-you-get-firebase-collection-items-along-with-their-keys%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
From the AngularFire documentation for valueChanges
:
When would you not use it?
When you need a more complex data structure than an array or you need the id of each document to use data manipulation methods. This method assumes you either are saving the id to the document data or using a "readonly" approach.
Since you need the ID of the documents, either use `documentChanges or persist the ID into the document too.
add a comment |
From the AngularFire documentation for valueChanges
:
When would you not use it?
When you need a more complex data structure than an array or you need the id of each document to use data manipulation methods. This method assumes you either are saving the id to the document data or using a "readonly" approach.
Since you need the ID of the documents, either use `documentChanges or persist the ID into the document too.
add a comment |
From the AngularFire documentation for valueChanges
:
When would you not use it?
When you need a more complex data structure than an array or you need the id of each document to use data manipulation methods. This method assumes you either are saving the id to the document data or using a "readonly" approach.
Since you need the ID of the documents, either use `documentChanges or persist the ID into the document too.
From the AngularFire documentation for valueChanges
:
When would you not use it?
When you need a more complex data structure than an array or you need the id of each document to use data manipulation methods. This method assumes you either are saving the id to the document data or using a "readonly" approach.
Since you need the ID of the documents, either use `documentChanges or persist the ID into the document too.
answered Jan 1 at 22:19
Frank van PuffelenFrank van Puffelen
241k29384412
241k29384412
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53998696%2fhow-do-you-get-firebase-collection-items-along-with-their-keys%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
If your preferred method of getting document data from Firestore involves eliminating the document IDs from the query results, you'll need to put the id of the document into the document itself as a new field. Or, you'll have to query in such a way that you get an entire DocumentSnapshot object to deal with (which has an
id
property).– Doug Stevenson
Jan 1 at 20:45