Restraints on custom objects supported by Google FireStore?












0















I am using Google FireStore for the backend of my android application. The app has a custom User class. As specified by the documentation, this custom class has a public constructor without arguments (and one with arguments) as well as a getter for each variable.



One of these variables is a LinkedList<String>. I am able to upload User objects without issue to FireStore, but retrieving them via



User u = document.toObject(User.class);



causes the following error, detected in logcat:



java.lang.IllegalArgumentException: field ase.liongps.utils.User.searches has type java.util.LinkedList, got java.util.ArrayList



I am wondering if Google FireStore perhaps mutates objects when it stores them in the cloud, or if something about how I tried to create a local User object caused this issue. This bug is currently crashing my app, so any advice or input is most welcome!










share|improve this question


















  • 1





    Have you tried to get the data as an ArrayList instead of LinkedList?

    – Alex Mamo
    Nov 21 '18 at 16:41











  • I'm considering resorting to this, but it breaks some of our logic that uses ArrayList-specific methods.

    – Chris T
    Nov 21 '18 at 16:44






  • 1





    Get it first as an ArrayList and order after that. Does it work this way?

    – Alex Mamo
    Nov 21 '18 at 16:45











  • That is a possible option - I'll try it, thank you @AlexMamo - I'm still curious why this issue occurs though.

    – Chris T
    Nov 21 '18 at 16:47













  • Ok, tell me if it works this way.

    – Alex Mamo
    Nov 21 '18 at 16:48
















0















I am using Google FireStore for the backend of my android application. The app has a custom User class. As specified by the documentation, this custom class has a public constructor without arguments (and one with arguments) as well as a getter for each variable.



One of these variables is a LinkedList<String>. I am able to upload User objects without issue to FireStore, but retrieving them via



User u = document.toObject(User.class);



causes the following error, detected in logcat:



java.lang.IllegalArgumentException: field ase.liongps.utils.User.searches has type java.util.LinkedList, got java.util.ArrayList



I am wondering if Google FireStore perhaps mutates objects when it stores them in the cloud, or if something about how I tried to create a local User object caused this issue. This bug is currently crashing my app, so any advice or input is most welcome!










share|improve this question


















  • 1





    Have you tried to get the data as an ArrayList instead of LinkedList?

    – Alex Mamo
    Nov 21 '18 at 16:41











  • I'm considering resorting to this, but it breaks some of our logic that uses ArrayList-specific methods.

    – Chris T
    Nov 21 '18 at 16:44






  • 1





    Get it first as an ArrayList and order after that. Does it work this way?

    – Alex Mamo
    Nov 21 '18 at 16:45











  • That is a possible option - I'll try it, thank you @AlexMamo - I'm still curious why this issue occurs though.

    – Chris T
    Nov 21 '18 at 16:47













  • Ok, tell me if it works this way.

    – Alex Mamo
    Nov 21 '18 at 16:48














0












0








0








I am using Google FireStore for the backend of my android application. The app has a custom User class. As specified by the documentation, this custom class has a public constructor without arguments (and one with arguments) as well as a getter for each variable.



One of these variables is a LinkedList<String>. I am able to upload User objects without issue to FireStore, but retrieving them via



User u = document.toObject(User.class);



causes the following error, detected in logcat:



java.lang.IllegalArgumentException: field ase.liongps.utils.User.searches has type java.util.LinkedList, got java.util.ArrayList



I am wondering if Google FireStore perhaps mutates objects when it stores them in the cloud, or if something about how I tried to create a local User object caused this issue. This bug is currently crashing my app, so any advice or input is most welcome!










share|improve this question














I am using Google FireStore for the backend of my android application. The app has a custom User class. As specified by the documentation, this custom class has a public constructor without arguments (and one with arguments) as well as a getter for each variable.



One of these variables is a LinkedList<String>. I am able to upload User objects without issue to FireStore, but retrieving them via



User u = document.toObject(User.class);



causes the following error, detected in logcat:



java.lang.IllegalArgumentException: field ase.liongps.utils.User.searches has type java.util.LinkedList, got java.util.ArrayList



I am wondering if Google FireStore perhaps mutates objects when it stores them in the cloud, or if something about how I tried to create a local User object caused this issue. This bug is currently crashing my app, so any advice or input is most welcome!







java android firebase google-cloud-firestore






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 21 '18 at 16:38









Chris TChris T

1868




1868








  • 1





    Have you tried to get the data as an ArrayList instead of LinkedList?

    – Alex Mamo
    Nov 21 '18 at 16:41











  • I'm considering resorting to this, but it breaks some of our logic that uses ArrayList-specific methods.

    – Chris T
    Nov 21 '18 at 16:44






  • 1





    Get it first as an ArrayList and order after that. Does it work this way?

    – Alex Mamo
    Nov 21 '18 at 16:45











  • That is a possible option - I'll try it, thank you @AlexMamo - I'm still curious why this issue occurs though.

    – Chris T
    Nov 21 '18 at 16:47













  • Ok, tell me if it works this way.

    – Alex Mamo
    Nov 21 '18 at 16:48














  • 1





    Have you tried to get the data as an ArrayList instead of LinkedList?

    – Alex Mamo
    Nov 21 '18 at 16:41











  • I'm considering resorting to this, but it breaks some of our logic that uses ArrayList-specific methods.

    – Chris T
    Nov 21 '18 at 16:44






  • 1





    Get it first as an ArrayList and order after that. Does it work this way?

    – Alex Mamo
    Nov 21 '18 at 16:45











  • That is a possible option - I'll try it, thank you @AlexMamo - I'm still curious why this issue occurs though.

    – Chris T
    Nov 21 '18 at 16:47













  • Ok, tell me if it works this way.

    – Alex Mamo
    Nov 21 '18 at 16:48








1




1





Have you tried to get the data as an ArrayList instead of LinkedList?

– Alex Mamo
Nov 21 '18 at 16:41





Have you tried to get the data as an ArrayList instead of LinkedList?

– Alex Mamo
Nov 21 '18 at 16:41













I'm considering resorting to this, but it breaks some of our logic that uses ArrayList-specific methods.

– Chris T
Nov 21 '18 at 16:44





I'm considering resorting to this, but it breaks some of our logic that uses ArrayList-specific methods.

– Chris T
Nov 21 '18 at 16:44




1




1





Get it first as an ArrayList and order after that. Does it work this way?

– Alex Mamo
Nov 21 '18 at 16:45





Get it first as an ArrayList and order after that. Does it work this way?

– Alex Mamo
Nov 21 '18 at 16:45













That is a possible option - I'll try it, thank you @AlexMamo - I'm still curious why this issue occurs though.

– Chris T
Nov 21 '18 at 16:47







That is a possible option - I'll try it, thank you @AlexMamo - I'm still curious why this issue occurs though.

– Chris T
Nov 21 '18 at 16:47















Ok, tell me if it works this way.

– Alex Mamo
Nov 21 '18 at 16:48





Ok, tell me if it works this way.

– Alex Mamo
Nov 21 '18 at 16:48












1 Answer
1






active

oldest

votes


















1














You are getting the following error:




java.lang.IllegalArgumentException: field ase.liongps.utils.User.searches has type java.util.LinkedList, got java.util.ArrayList




Because of incompatible types of objects, LinkedList and ArrayList. To solve this, change the data type of your object from LinkedList to ArrayList and order the items client side.






share|improve this answer
























  • If you think that my answer helped you, please also consider accepting it. I'd appreciate it. Thanks!

    – Alex Mamo
    Nov 22 '18 at 8:07











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
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53416727%2frestraints-on-custom-objects-supported-by-google-firestore%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









1














You are getting the following error:




java.lang.IllegalArgumentException: field ase.liongps.utils.User.searches has type java.util.LinkedList, got java.util.ArrayList




Because of incompatible types of objects, LinkedList and ArrayList. To solve this, change the data type of your object from LinkedList to ArrayList and order the items client side.






share|improve this answer
























  • If you think that my answer helped you, please also consider accepting it. I'd appreciate it. Thanks!

    – Alex Mamo
    Nov 22 '18 at 8:07
















1














You are getting the following error:




java.lang.IllegalArgumentException: field ase.liongps.utils.User.searches has type java.util.LinkedList, got java.util.ArrayList




Because of incompatible types of objects, LinkedList and ArrayList. To solve this, change the data type of your object from LinkedList to ArrayList and order the items client side.






share|improve this answer
























  • If you think that my answer helped you, please also consider accepting it. I'd appreciate it. Thanks!

    – Alex Mamo
    Nov 22 '18 at 8:07














1












1








1







You are getting the following error:




java.lang.IllegalArgumentException: field ase.liongps.utils.User.searches has type java.util.LinkedList, got java.util.ArrayList




Because of incompatible types of objects, LinkedList and ArrayList. To solve this, change the data type of your object from LinkedList to ArrayList and order the items client side.






share|improve this answer













You are getting the following error:




java.lang.IllegalArgumentException: field ase.liongps.utils.User.searches has type java.util.LinkedList, got java.util.ArrayList




Because of incompatible types of objects, LinkedList and ArrayList. To solve this, change the data type of your object from LinkedList to ArrayList and order the items client side.







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 21 '18 at 17:07









Alex MamoAlex Mamo

43.4k82860




43.4k82860













  • If you think that my answer helped you, please also consider accepting it. I'd appreciate it. Thanks!

    – Alex Mamo
    Nov 22 '18 at 8:07



















  • If you think that my answer helped you, please also consider accepting it. I'd appreciate it. Thanks!

    – Alex Mamo
    Nov 22 '18 at 8:07

















If you think that my answer helped you, please also consider accepting it. I'd appreciate it. Thanks!

– Alex Mamo
Nov 22 '18 at 8:07





If you think that my answer helped you, please also consider accepting it. I'd appreciate it. Thanks!

– Alex Mamo
Nov 22 '18 at 8:07




















draft saved

draft discarded




















































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.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53416727%2frestraints-on-custom-objects-supported-by-google-firestore%23new-answer', 'question_page');
}
);

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







Popular posts from this blog

MongoDB - Not Authorized To Execute Command

in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

How to fix TextFormField cause rebuild widget in Flutter