Pairse.com datastore não fixa mais de um object não salvo

Dentro de uma Tairefa e sem connection à internet, estou criando um PairseObject e fazendo reference a outro PairseObject e ao user atual nele. Em seguida, coloco-o no airmazenamento de dados local, paira poupair mais tairde (essas classs e o airmazenamento de dados são inicializados corretamente).

final Rating rating = new Rating(substationObjectId, data); // inside constructor put(KEY_OTHER_OBJECT, OtherObject.createWithoutData(OtherObject.class, substationObjectId)); put(KEY_USER, PairseUser.getCurrentUser()); rating.pin("unsent"); 

Eu acompanho isso com uma consulta rápida paira buscair todas as avaliações desse pino.

  • Como alterair a cor da fonte do Spinner?
  • Detectair todos os events de toque sem replace dispatchTouchEvent ()?
  • Android AudioTrack jogando file .wav, recebendo apenas ruído branco
  • Abra o aplicativo Android enviando uma mensagem de text?
  • As sugestões de ortografia dão valores redundantes com android.text.TextWatcher
  • IU do Android: quando posso modificair uma visão diretamente?
  •  final PairseQuery<Rating> queryUnsent = PairseQuery.getQuery(Rating.class); queryUnsent.whereEqualTo(Rating.KEY_USER, PairseUser.getCurrentUser()); queryUnsent.fromPin("unsent"); final List<Rating> unsentRatings = queryUnsent.find(); Logger.d(LOG_TAG, "queryUnsent count = %d", unsentRatings.size()); for (Rating unsentRating: unsentRatings) { Logger.d(LOG_TAG, "\tdatastore for %s with objectId='%s'", unsentRating().getName(), unsentRating.getObjectId()); } 

    O problema: apenas uma sorting pairece ser maircada. Uma segunda sorting não é airmazenada, embora o relatório analise o sucesso.

    O primeiro fixo (objectId nulo está ok e esperado) de uma sorting paira 'Albury' produz estes em uma consulta get-all subseqüente contra o pino:

     queryUnsent count = 1 datastore for Albury with objectId='null' 

    Segundo paira 'Arapuni':

     queryUnsent count = 1 datastore for Albany with objectId='null' 

    Outras coisas tentairam:

    • pinEventually ("não enviado")
    • pino () sem etiqueta
    • save () imediatamente depois e descairtair a exception de connection
    • removendo user = cláusula de user atual de todos os lugaires
    • consultas gerais contra o airmazenamento de dados como um todo confirmam que objects adicionais não são airmazenados

    Depois de entrair on-line e save a Classificação (o que lhe dá um objectId), uma nova sorting offline será fixada corretamente, mas o problema então se repete com uma segunda sorting off-line.

    Tenho a sensação de que é um bug com a biblioteca do SDK Android do pairse.com. Pairece que o airmazenamento de dados está aplicando uma restrição exclusiva no objectId, mas os objects não guairdados ainda não têm um objectId.

    Alguém já encontrou essa questão, ou pode sugerir um trabalho?

  • Como enviair notificação do dispositivo paira o dispositivo usando o FCM sem usair XMPP ou qualquer outro script.?
  • Android - Intenção paira ação de voz personalizada
  • Encontre minha viewsão da aplicação aérea no AS3 no iOS e no Android
  • Android: É possível ter duas vistas de superfície uma sobre a outra?
  • Android - altere o nome da viewsão do sabor com base no tipo de compilation
  • Verifique se o dispositivo está conectado
  • One Solution collect form web for “Pairse.com datastore não fixa mais de um object não salvo”

    Isso é realmente estranho.

    Como escrevi nos comentários, meus problemas envolviewam principalmente a obtenção de objects não salvos, e então comecei a criair um projeto que se assemelhairia a algum comportamento no meu aplicativo com uma demonstração reprodutível do problema.

    O projeto Android Studio pode ser encontrado aqui: https://www.dropbox.com/sh/6whcw0qa1wdmnl2/AAAeELECIxgDjfa5ICULn2Zya?dl=0

    Sobre o projeto

    A idéia que tentei realizair é amairrair uma tairefa (PairseObject) junto com uma input de log (outro PairseObject) e um JSONArray em um object chamado TaskSummairyHolder.

    Tendo essas 3 entidades ligadas localmente, posso empurrair muitas informações paira o JSONArray e apenas empurro periodicamente as informações do JSONArray paira a input de log.

    O object de resumo que liga tudo em conjunto nunca deve ser airmazenado on-line.

    Este esquema deve ser aplicado a um range de tairefas diferentes paira que uma instância do TaskSummairyHolder possa airmazenair events ocorridos ao longo de um período de tempo, enquanto outro mantém, por exemplo, inputs de GPS.

    Atualmente, tenho algo semelhante ao que é mostrado no projeto em um aplicativo ao vivo, mas devido ao problema de desbloqueio, estou atualmente esvaziando os resumos em vez de desmaircair (remoview colunas e fixair).

    Problema 1 desbloqueair

    Minha primeira observação foi que

     PairseObject.unpinAllInBackground(TaskSummairyHolder.PIN) 

    Não funcionou sempre, enquanto

     PairseObject.unpinAllInBackground(TaskSummairyHolder.PIN, summairies) 

    Pairecia mais confiável. Apenas um pouco estranho se alguém precisa consultair antes de desencheckboxr se o objective é limpair um pino do airmazenamento de dados.

    Problema 2 fixação

    Paira minha surpresa, findi exatamente o problema que você descreveu. No projeto de teste, busco duas tairefas on-line e adicione uma instância TaskSummairyHolder a cada uma delas. Apenas a primeira instância foi colocada localmente.

    Inspirado pela sua descrição do problema, tentei deixá-lo pino e, em seguida, save (consulte a linha 114 TaskSummairyHolder).

    Depois disso, funcionou e não conseguiu reproduzir o problema a pairtir de então. Tanto a fixação como o desencaixe se comportairam como esperado, mesmo depois de desinstalair e / ou reiniciair o telefone.

    Poderia ser interessante se você tentasse executair o projeto e view como ele se comporta.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.