1
ボタン(ID =変更)をクリックすると、Admin SDKでhttpsトリガーされた機能を介してfirebaseリアルタイムデータベースに書き込もうとしています。XMLHttpRequestはcorsを使用した後でもfirebaseのクラウド関数のURLをロードできません
これは、下記のクライアント側のコード
$('#change').click(function(){
$.ajax({
url: 'https://<CLOUD FUNCTION URL>/verifyuser?uid='+user.uid,
type: "GET",
cache: false,
dataType: "text",
crossDomain: true,
success : function(result){console.log(result);},
error : function(error){console.log(error);}
});
});
でAjaxのgetメソッドですが、HTTP要求にトリガ私のfirebaseクラウド機能です。私のコンソールに表示
const functions = require('firebase-functions');
const admin=require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const cors=require('cors')({origin: true});
exports.verifyuser = functions.https.onRequest((req, res) => {
cors(req, res,() => {
const uid=req.query.uid;
admin.database.ref('/tathva17/users/'+uid+'/hospitality').set(
{'status':'confirmed'}).then(function(){
res.status(200).send("Success!");
});
});
});
エラー(ID = "変更")ボタンをクリックした後
機能コンソールには何が記録されましたか? –
* "応答にはHTTPステータスコード500があります" *は、CORS設定とは無関係の内部サーバー障害が実際の問題であることを示します。ブラウザにCORSエラーメッセージが表示される唯一の理由は、多くのサーバーは通常、500個の応答またはその他のエラー応答でAccess-Control-Allow-Originを送信せず、Access-Control-Allow-Origin ok-status/successレスポンスの場合したがってCORSの問題ではなく、代わりにサーバー側のサーバーログを調べて、500の内部エラーの原因についてどのメッセージがログに記録されているかを確認します。 – sideshowbarker
admin.database.ref()が関数ではないというエラーが発生しました。関数ではありません。 –