Amazon AWS SDK hell...p

Hi guys,

(if you think this question belongs on AWS forum, please let me know)
(…also, I posted this as a forumn thread, but later felt that it’s really a question… or maybe not…)

I am not trying to do anything fancy, just a simple query on an existing table. All the permissions are open. I can make queries against this table in Python, but in Unity… the debugger seems to skip over all client.*Async calls.

Now, the cognito portion is fine as it sets the datasets.
With Dynamodb, it works ONCE right after I create a new cognito user pool. The second time around, the debugger steps right over the client.QueryAsync(…) call, as if it’s not even there.

I am using unity 5.3.3f1 and AWS aws-sdk-unity_3.1.95.0.

So much said, here is the code:

using UnityEngine;
using System.Collections;
using System;
using Amazon;
using Amazon.DynamoDBv2;
using Amazon.DynamoDBv2.DataModel;
using Amazon.DynamoDBv2.DocumentModel;

using System.Collections.Generic;
using Amazon.CognitoIdentity;
using Amazon.DynamoDBv2.Model;
using Amazon.Util;
using Amazon.Runtime;

using System.Text;

public class QuestionManager : MonoBehaviour
{
    public int limit = 5;
    public string content;
    public GameObject Cognito;
    private IAmazonDynamoDB client;

    private DynamoDBContext Context;
    private AWSCognitoSync cognitoSync;
    private CognitoAWSCredentials cred;
    public string resultText;

    public void qInit()
    {

        cred = cognitoSync.Credentials;
        client = new AmazonDynamoDBClient(cred, RegionEndpoint.USEast1);
        Context = new DynamoDBContext(client);
        GetQuestions("Music");
    }


    public void GetQuestions(string category)
    {
        QueryRequest request = new QueryRequest();
        request.TableName = "Questions3";
        request.Limit = 10;
        request.ReturnConsumedCapacity = "TOTAL";

      
        request.KeyConditionExpression = "category = :v_id";
        request.ExpressionAttributeValues = new Dictionary<string, AttributeValue> {
        {
          ":v_Id", new AttributeValue {
            S = category
          }
        }
        };

        client.QueryAsync(request, (result) =>
        {

            if (result.Exception != null)
            {
                Debug.Log("Failed to Query");
            }

            Debug.Log("Entered QuerySync");
            resultText = string.Format("No. of reads used (by query in FindRepliesForAThreadSpecifyLimit) {0}

",
result.Response.ConsumedCapacity.CapacityUnits);
Debug.Log(“resultText ---->” + resultText);

            foreach (var item in result.Response.Items)
            {
                Debug.Log(item);
            }
        });
   }
}

Any thoughts would be appreciated…

ok, found the issue.

Posting for the next guy who goes nuts over a non-issue…

The problem was… that the GameObject the Cognito was attached to was being destroyed as I loaded the next level…

Solution: Added a script to the Cognito GameObject to preserve it from one scene to another.

Here is the code:

using UnityEngine;

public class DontDestroyOnLoad : MonoBehaviour {

    public void Awake()
    {
        MonoBehaviour.DontDestroyOnLoad(this);
    }
}