問題
タイトルの通り。 onCall にて cloud function を定義しているが、特定のメソッドだけクロスドメインエラーになる問題が発生 (同じプロジェクトの他のメソッドは呼べる)
解決策
何故か他のfunctionと同じ内容にして、名前だけ違う、という状態にしてもCORSエラーになったので、 一回そのfunctionは消して、新たに違う名前のメソッド作ったら行けた。 ので、改めて指定したい名前のメソッドを作ってデプロイ。
解決!!!
原因1)
実は、こういうcloud functionほしいというサンプルを windowsで作ってくれた知人がおりまして、 こんなことやりたいていうサンプルプログラムをくれました。
そのソースコード中に <0x200b> と書いあったりして、 どういうことだと思いましたが、
その部分は消して一部コメントなどをコピペして利用していました。
なので、おそらく、 文字コードとかがおかしくてそのメソッドにだけ影響してしまった… のではないかと。(見えない文字がたまに存在していたりする)
原因2
functionの一部であると思っているデータがundefinedでエラーになっていた。
これは frebase の console の log を見ればデータが取れていないことがわかったが、 このときもCORSエラーが出ていた。 internal server error 出ちゃうとCORSエラーも一緒に発生する?
…firebase cloud functions で使ってる node.js の version 上げたり 書き方もう一度確認するか…。
参照
javascript - Firebase Callable Function + CORS - Stack Overflow