2017-10-07 13 views
0

新しいFirestore by Firebaseを試しています。 https://firebase.google.com/docs/firestore/manage-data/add-data?authuser=0からコードサンプルを実行すると、エラーが発生します。キャッチFirestoreのWebコードサンプルに無効な引数タイプが指定されました

// Add a new document with a generated id. 
db.collection("cities").add({ 
    name: "Tokyo", 
    country: "Japan" 
}) 
.then(function(docRef) { 
    console.log("Document written with ID: ", docRef.id); 
}) 
.catch(function(error) { 
    console.error("Error adding document: ", error); 
}); 

例外:(FirebaseError):機能CollectionReference.addは()型オブジェクトであるように、最初の引数が必要ですが、それはだった: 申し訳ありません:

編集カスタムオブジェクトのオブジェクトを私はそれが

+0

クイックスキャンから、コードが正しいように見えます。これは、印刷できない文字がサンプルからコピーされたかどうか疑問です。違いがあるかどうかを確認するために渡すJSONオブジェクトを入力してみることができますか? –

+0

もう一度タイプしましたが、違いはありません –

+0

うーん....その場合は分かりません。他の誰かがより良いアイデアを持っていることを祈りましょう。 –

答えて

0

これはおそらくクロスウィンドウの問題です.GWTコードはiframeで実行されます。 Firebaseが「裸のオブジェクト」を探している場合は、そのオブジェクトがiframeの境界を横切る場合に期待されるものではないオブジェクトのコンストラクタを比較する可能性があります。

{}またはnew Object()の代わりにnew $wnd.Object()を使用してみてください。

+0

それが感謝します.D –

1

クイック回避策

var city: any; 
city = Object.assign({}, { 
    name: "Tokyo", 
    country: "Japan" 
}); 
db.collection("cities").add(city) 
GWTせずに正常に動作しています、私はGWTとJSNIを使用しています言及didntは
+0

は私に同じエラー –

+0

を与えますが、なぜですか?なぜ私たちは新しいオブジェクトを作成しなければならないのですか – Ruben

+0

@ thomas-broyer、それは異なるenvsのためです –

0

Add a document

その後、あなたはこれを試すことができます。エラーが言うように、私が作成するために、非JSNIの変換方法の機能を使用していますこの問題を回避するようにGWTは、いくつかのカスタムオブジェクトを生成しているよう

db.collection("cities").add({ 
    'name': "Tokyo", 
    'country': "Japan" 
}) 
+0

Nop、JSNIのいずれかで動作しません –

0

らしいですそれでもこの

function convertObject(data) { 
    var obj = {} 
    Object.keys(data).forEach(function(key,index) { 
     console.log(key); 
     obj[key] = data[key]; 
    }); 
    return obj; 
} 

だけでこの問題を回避すると、より良い解決策があるかどうかを知るのが大好きだ..

のようなオブジェクト
関連する問題