Find out which firestore batch action failed and what data was written to db?
I have a function to create a character that has 2 writes to firestore to create character and create username (I create username to then check if it already exists i.e. enforcing unique usernames).
try {
const characterPrivateRef = firestore().doc(`characters/${uid}`);
const usernameRef = firestore().doc(`usernames/${username}`);
firestore().batch().batch.create(characterRef, {...characterData});
firestore().batch().batch.create(characterPrivateRef, {...usernameData});
await firestore().batch().commit();
// How can I get data written to each firestore document from batch
here?
} catch (e) {
// How can I check what batch failed here i.e. if it was username I
want to show error saying something like ("Username already exists")
}
javascript firebase google-cloud-firestore
add a comment |
I have a function to create a character that has 2 writes to firestore to create character and create username (I create username to then check if it already exists i.e. enforcing unique usernames).
try {
const characterPrivateRef = firestore().doc(`characters/${uid}`);
const usernameRef = firestore().doc(`usernames/${username}`);
firestore().batch().batch.create(characterRef, {...characterData});
firestore().batch().batch.create(characterPrivateRef, {...usernameData});
await firestore().batch().commit();
// How can I get data written to each firestore document from batch
here?
} catch (e) {
// How can I check what batch failed here i.e. if it was username I
want to show error saying something like ("Username already exists")
}
javascript firebase google-cloud-firestore
add a comment |
I have a function to create a character that has 2 writes to firestore to create character and create username (I create username to then check if it already exists i.e. enforcing unique usernames).
try {
const characterPrivateRef = firestore().doc(`characters/${uid}`);
const usernameRef = firestore().doc(`usernames/${username}`);
firestore().batch().batch.create(characterRef, {...characterData});
firestore().batch().batch.create(characterPrivateRef, {...usernameData});
await firestore().batch().commit();
// How can I get data written to each firestore document from batch
here?
} catch (e) {
// How can I check what batch failed here i.e. if it was username I
want to show error saying something like ("Username already exists")
}
javascript firebase google-cloud-firestore
I have a function to create a character that has 2 writes to firestore to create character and create username (I create username to then check if it already exists i.e. enforcing unique usernames).
try {
const characterPrivateRef = firestore().doc(`characters/${uid}`);
const usernameRef = firestore().doc(`usernames/${username}`);
firestore().batch().batch.create(characterRef, {...characterData});
firestore().batch().batch.create(characterPrivateRef, {...usernameData});
await firestore().batch().commit();
// How can I get data written to each firestore document from batch
here?
} catch (e) {
// How can I check what batch failed here i.e. if it was username I
want to show error saying something like ("Username already exists")
}
javascript firebase google-cloud-firestore
javascript firebase google-cloud-firestore
edited Nov 22 '18 at 15:09
Frank van Puffelen
238k29382408
238k29382408
asked Nov 22 '18 at 10:56
IljaIlja
10.2k50151276
10.2k50151276
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
If you are using a batch write, it means that you trying to write the data to the Firestore database atomic, which means that either all operations succeed or all operations fail. As far as I know, there is no way to know which one of those two operations within the batch has failed. What you can do instead, is to attach a complete listener and get the error message once the batch operation fails. If you want to know which operation fails, you should write the data separately, as two different write operations.
Is there everything alright, can I help you with other informations?
– Alex Mamo
Nov 23 '18 at 9:22
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%2f53429411%2ffind-out-which-firestore-batch-action-failed-and-what-data-was-written-to-db%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
If you are using a batch write, it means that you trying to write the data to the Firestore database atomic, which means that either all operations succeed or all operations fail. As far as I know, there is no way to know which one of those two operations within the batch has failed. What you can do instead, is to attach a complete listener and get the error message once the batch operation fails. If you want to know which operation fails, you should write the data separately, as two different write operations.
Is there everything alright, can I help you with other informations?
– Alex Mamo
Nov 23 '18 at 9:22
add a comment |
If you are using a batch write, it means that you trying to write the data to the Firestore database atomic, which means that either all operations succeed or all operations fail. As far as I know, there is no way to know which one of those two operations within the batch has failed. What you can do instead, is to attach a complete listener and get the error message once the batch operation fails. If you want to know which operation fails, you should write the data separately, as two different write operations.
Is there everything alright, can I help you with other informations?
– Alex Mamo
Nov 23 '18 at 9:22
add a comment |
If you are using a batch write, it means that you trying to write the data to the Firestore database atomic, which means that either all operations succeed or all operations fail. As far as I know, there is no way to know which one of those two operations within the batch has failed. What you can do instead, is to attach a complete listener and get the error message once the batch operation fails. If you want to know which operation fails, you should write the data separately, as two different write operations.
If you are using a batch write, it means that you trying to write the data to the Firestore database atomic, which means that either all operations succeed or all operations fail. As far as I know, there is no way to know which one of those two operations within the batch has failed. What you can do instead, is to attach a complete listener and get the error message once the batch operation fails. If you want to know which operation fails, you should write the data separately, as two different write operations.
answered Nov 22 '18 at 11:15
Alex MamoAlex Mamo
44.6k82862
44.6k82862
Is there everything alright, can I help you with other informations?
– Alex Mamo
Nov 23 '18 at 9:22
add a comment |
Is there everything alright, can I help you with other informations?
– Alex Mamo
Nov 23 '18 at 9:22
Is there everything alright, can I help you with other informations?
– Alex Mamo
Nov 23 '18 at 9:22
Is there everything alright, can I help you with other informations?
– Alex Mamo
Nov 23 '18 at 9:22
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%2f53429411%2ffind-out-which-firestore-batch-action-failed-and-what-data-was-written-to-db%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