web-dev-qa-db-fra.com

Erreur: l'argument "données" n'est pas un document valide. L'entrée n'est pas un simple objet JavaScript

Je reçois l'erreur

Erreur: l'argument "données" n'est pas un document valide. L'entrée n'est pas un simple objet JavaScript.

lors de la mise à jour d'un document, à l'aide du SDK administrateur firebase. Voici le code TypeScript.

var myDoc = new MyDoc();
myDoc.Public.Name = "Jonh Doe" //setup up content

admin.firestore()
     .collection('MyDocs')
     .doc("Id1")
     .set(myDoc);
12
MiguelSlv

Dans le cas où quelqu'un d'autre tomberait sur le même problème, la solution est d'utiliser simplement Json pour instancier l'objet, comme ceci:

var myDoc = {
        Public: {
            Name: "Jonh Doe"
        }
    } as MyDoc; //keep type to still get TypeScript compiler validations
3
MiguelSlv

J'ai fait quelque chose de similaire:

var myDoc = <MyDoc> {
    Public: {
        Name: "Jonh Doe"
    }
}

C'est sémantiquement le même, je pense juste que c'est un peu plus propre.

3
Chad Bingham

J'ai eu le même problème, dans mon cas, j'avais oublié d'ajouter Content-Type:application/json à mon en-tête lors de l'envoi de la demande, puis l'objet a été traité comme une chaîne et j'ai eu cette erreur.

2
Reza

Vous pouvez recréer un objet js via; {...__data}

return refDB.set({...__data}).then((newData) => {

})
0
Murat Çimen