aws appsync в автономном режиме: получение ошибки Идентификатор переменной не был предоставлен - PullRequest
0 голосов
/ 31 мая 2018

Я использую AWS AppSync для разработки мобильных приложений (iOS) для автономных / онлайн-возможностей.

Я пытаюсь сохранить данные в автономном режиме.Но я получаю сообщение об ошибке «Идентификатор переменной не указан / отсутствует значение»

Когда приложение подключается к Интернету, оно автоматически синхронизируется с DynamoDB, но проблема заключается только в автономном режиме, при котором невозможно получить сохраненную запись

Вот код, который используется в приложении

`

    let userObjInput = userObjectInput(id: "id", firstName: "firstname", lastName: "lastName")

    let CategoryInputs = CreateUserCategoryInput(categoryName: "categoryValue" , user: userObjInput)

    let mutation =  CategoryMutation(input: CategoryInputs)

    appSyncClient?.perform(mutation: mutation, queue: .main, optimisticUpdate: { (transaction) in

            do {
                let selectionSets = try transaction?.read(query: query)
                try transaction?.update(query: GetUserCategoriesOfUserQuery(id: "id")) { (data: inout GetUserCategoriesOfUserQuery.Data) in
                  data.getAllCategoriesForUser?.append(GetUserCategoriesOfUserQuery.Data.GetAllCategoriesForUser?.init(GetUserCategoriesOfUserQuery.Data.GetAllCategoriesForUser.init(id: (UUID().uuidString), categoryName: CategoryInputs.categoryName!, isDeleted: false, user: GetUserCategoriesOfUserQuery.Data.GetAllCategoriesForUser.User?.init(GetUserCategoriesOfUserQuery.Data.GetAllCategoriesForUser.User.init(id: userObjInput.id!, firstName: userObjInput.firstName!, lastName: userObjInput.lastName!)))))
            } catch {
                print(error.localizedDescription)
           }
    }, conflictResolutionBlock: nil, resultHandler: { (result, error) in

        if error == nil {
            fetchCategories()

        } else {
            print(error?.localizedDescription)
        }
    })`

1 Ответ

0 голосов
/ 21 августа 2018

Для тех, у кого проблемы с optimistic UI missing value.Я нашел один трюк для временного решения проблемы путем передачи параметра с помощью Custom Request Header из клиентского приложения.
Раньше ваш запрос выглядел следующим образом allDiaries(author: String): [Diary]
Просто измените его на => allDiaries: [Diary] * 1007.* Таким образом, ваш request mapping будет выглядеть следующим образом:

{
    "version" : "2017-02-28",
    "operation" : "Scan",
    "filter" : {
        "expression" : "author = :author",
        "expressionValues" : {
            ":author" : { "S" : "$context.request.headers.author" }
        }
    }
}

Ссылка: Как передать настраиваемый заголовок запроса AWS AppSync в клиенте iOS?
Надеюсь, это полезно!Гудлак:)

...