javascript - AWS Cognito - 离线数据可用性

标签 javascript cordova amazon-web-services offline amazon-cognito

我正在构建一个 phonegap 应用程序并使用 AWS Cognito 来存储用户数据。在 Cognito 的描述中,据说数据是​​离线可用的。这在我的代码中不起作用:

var add_data;    
function getCognitoData(){
 var params = {
  IdentityPoolId: COGNITO_IDENTITY_POOL_ID,
  Logins: {
   'graph.facebook.com': FACEBOOK_TOKEN
  }  
 };
 AWS.config.region = AWS_REGION;
 AWS.config.credentials = new AWS.CognitoIdentityCredentials(params);
 AWS.config.credentials.get(function(err) {
  if (err) {
   console.log("Error: "+err);
   return;
  }
  console.log("Cognito Identity Id: " + AWS.config.credentials.identityId);

  var syncClient = new AWS.CognitoSyncManager();

  syncClient.openOrCreateDataset('myDataset', function(err, dataset) {
   dataset.get('myKey', function(err, value) {
    console.log(value, err);
   });

   add_data = function(thisid, thisval) {
    dataset.put(thisid, thisval, function(err, record){
     dataset.synchronize({
      onSuccess: function(data, newRecords) {
       console.log("success", newRecords);
      },
      onFailure: function(err) {
       console.log("error", err);
      },
      onConflict: function(dataset, conflicts, callback) {
       console.log("sync conflict", dataset, conflicts);
       var resolved = [];

       for (var i=0; i<conflicts.length; i++) {
        resolved.push(conflicts[i].resolveWithRemoteRecord());
       }

       dataset.resolve(resolved, function() {
        return callback(true);
       });
      }
     });
    });
   }
  });
 });
}

Identity Pool 和 Facebook Token 的 AWS Credentials 是之前设置的,并且在在线模式下工作,但在离线时我没有获取数据集数据。

我是在做错什么,还是在离线时通常无法获取 Cognito 数据集数据?我读到,数据实际上保存在本地存储中。

我正在使用当前的 AWS SKD(版本 v2.1.42)和 Amazon Cognito JS。

最佳答案

可以离线获取数据。你需要synchronize数据集以获取其中可能包含的任何内容,否则它们是空的。你在这样做吗?如果不是,请尝试这样做,但如果是,您可以更新上面的代码吗?

关于javascript - AWS Cognito - 离线数据可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31743751/

相关文章:

javascript - react : How to set state of object property?

android - 发生意外错误 : ant jar >/dev/null exited with 127 in phonegap

不同环境下的Cordova插件管理

javascript - 使用javascript在Android中改变方向

amazon-web-services - AWS ECS docker 容器 RDS 集成

java - 如何在 Java 中使用 Mockito 模拟 AWS API

javascript - 无法读取未定义的属性 'encrypt'

javascript - 针对不同的处理程序将不同的参数传递给 deferred.resolve()

javascript - EJS 逻辑有效,但 html 未显示

amazon-web-services - AWS 阶跃函数成本计算