2017-10-16 4 views
1

Je suis nouveau à AWS et j'essaye de sauvegarder des données à ma base de données en utilisant l'exemple d'aws avec la table de nouvelles.DynamoDB enregistrer à DB

Je connecté cette fonction au bouton principal de story-board:

@IBAction func addButton(_ sender: Any) { 

    let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default() 

    //Create data object using data models you downloaded from Mobile Hub 
    let newsItem: News = News(); 

    // Use AWSIdentityManager.default().identityId here to get the user identity id. 
    newsItem._userId = "us-east-1:74c8f7ce-244b-4476-963e-0dcb3216f406" 
    newsItem._articleId = "0123" 
    newsItem._title = "Banana" 
    newsItem._author = "Logan" 
    newsItem._content = "Should I stay or should I go now?" 
    newsItem._category = "Food" 


    //Save a new item 
    dynamoDbObjectMapper.save(newsItem, completionHandler: { 
     (error: Error?) -> Void in 

     if let error = error { 
      print("Amazon DynamoDB Save Error: \(error)") 
      return 
     } 
     print("An item was saved.") 
    }) 

} 

mais quand je frappe le bouton I get: mazon DynamoDB Save Error: Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=0 "(null)" UserInfo={__type=com.amazon.coral.validate#ValidationException, message=Supplied AttributeValue is empty, must contain exactly one of the supported datatypes}

mes champs Nouvelles sont:

 override class func jsonKeyPathsByPropertyKey() -> [AnyHashable: Any] { 
    return [ 
      "_userId" : "userId", 
      "_articleId" : "articleId", 
      "_author" : "author", 
      "_category" : "category", 
      "_content" : "content", 
      "_title" : "title", 
    ] 
} 
+0

Quels sont les champs requis pour la table DynamoDB associée? –

Répondre

1

j'avais le même problème, et j'ai résolu l'ajout de @objc dans la variable eery de News(), par exemple

class News: AWSDynamoDBObjectModel, AWSDynamoDBModeling { 
    @objc var id: String? 
    @objc var type: String? 
    @objc var cc: String? 
} 

Si vous ajoutez @objc que la force pour envelopper à NS objet, ceci est un bug pour les Aws sdk mobile ...

+0

Cela m'a vraiment aidé. Upvoting. Merci! – Macondo2Seattle