kinvey取出并删除不起作用(AngularJS)

时间:2017-05-04 12:08:32

标签: angularjs kinvey

我和kinvey后端有这个问题, 我正在尝试从我的收藏中获取数据,但它对我不起作用。这是我的代码:

var query = new $kinvey.Query();
query.equalTo('_id', '5909e8084c68b1ef74fa4efc');
var dataStore = $kinvey.DataStore.collection('User1Bases', $kinvey.DataStoreType.Network);
var stream = dataStore.find(query);
    stream.subscribe(function onNext(entity) {

        // ...
    }, function onError(error) {
        // ...
    }, function onComplete() {
        //...
    });

请帮助我

2 个答案:

答案 0 :(得分:1)

如果您运行已发布的代码,请考虑以下四点:

  1. 确保你实施了Kinvey:
  2. 
    
    <script src="https://da189i1jfloii.cloudfront.net/js/kinvey-html5-sdk-3.10.2.min.js"></script>
    &#13;
    &#13;
    &#13;

    1. 确保您之前已初始化Kinvey服务:
    2. &#13;
      &#13;
              // Values shown in your Kinvey console
              Kinvey.init({
                  appKey: '<your_appKey>',
                  appSecret: 'your_appSecret'
              });
      &#13;
      &#13;
      &#13;

      1. 确保您使用有权阅读您的收藏的用户登录(使用“所有用户”角色(默认)应该没问题):
      2. &#13;
        &#13;
         var promise = Kinvey.User.login('<username>', '<password>')
                    .then(function() {
                      console.log ("You are logged in");
                    })
                    .catch(function(error) {
                        console.log (error);
                    });
        &#13;
        &#13;
        &#13;

        1. 输出返回结果以查看返回的内容。要确保在成功登录后执行查询,请将查询粘贴到登录的.then函数中。 我不确定您的查询是否有效,因为很多内容已发生变化且我没有使用较旧的Kinvey版本。
        2. 所以这一切看起来像这样:

          &#13;
          &#13;
          // Initialize Kinvey 
          Kinvey.init({
                      appKey: '<your_appKey>',
                      appSecret: 'your_appSecret'
                  });
          
          
          // Login with already registered user        
          var promise = Kinvey.User.login('<username>', '<password>')
                      .then(function() {
                        console.log ("You are logged in");
                        
                        // Your query
                        var query = new $kinvey.Query();
                  			query.equalTo('_id', '5909e8084c68b1ef74fa4efc');
                  			var dataStore = $kinvey.DataStore.collection('User1Bases', $kinvey.DataStoreType.Network);
                  			var stream = dataStore.find(query);
                  			stream.subscribe(function onNext(entity) {
                  			// Output of returning result
                  			console.log (entity);
          
                      // ...
                  }, function onError(error) {
                      // ...
                  }, function onComplete() {
                      //...
                  });
                        
                      })
                      .catch(function(error) {
                          console.log (error);
                      });     
          &#13;
          &#13;
          &#13;

          现在有三种可能的返回集:

          1. 没有(如你所说) - &gt;代码中缺少/错误的东西(与你的相比)

          2. 空数组:您的查询找不到任何内容,调整搜索值

          3. 数组中的一个或多个条目 - &gt;一切都很好,你在寻找什么!

          4. 希望有所帮助!

答案 1 :(得分:0)

_id查询时,有一种内置方法:http://devcenter.kinvey.com/angular/guides/datastore#FetchingbyId

尝试切换到var stream = dataStore.findById('entity-id');

同时检查以确保您没有任何干扰查询的preFetch或postFetch BL。