Firebase-tools: クラウド機能:/<segment>/ **書き換えが機能しない</segment>

作成日 2017年07月10日  ·  3コメント  ·  ソース: firebase/firebase-tools

クラウド機能があります

const app = express()

app.get('/ping', (req, res) => {
  res.send('pong');
})

exports.api = functions.https.onRequest(app)

そしてそれはうまくいきます

https://...cloudfunctions.net/api/ping
ポン

次に、次の構成を追加します

{
  "hosting": {
    "public": "public",
    "rewrites": [ {
      "source": "/api/**", "function": "api"
    } ]
  }
}

アプリケーションのURLから呼び出そうとすると、失敗します。

https://...firebaseapp.com/api/ping
404

このように関数へのすべての呼び出しを書き換えを使用する場合

{
  "hosting": {
    "public": "public",
    "rewrites": [ {
      "source": "**", "function": "api"
    } ]
  }
}

その後、それは動作します

https://...firebaseapp.com/ping
ポン

ここで何かが足りないのですか、それともこのシナリオはサポートされていませんか?

これについて書いているブログがあります、それは書き直しで使用してセグメント化します:

https://firebase.googleblog.com/2017/06/serving-dynamic-content-with-cloud.html

最も参考になるコメント

高速ルートの先頭に/ apiを追加する必要があります。 プレフィックスはありません
URLがクラウド機能に送信されるときに切り落とされます。

日、2017年7月9日には、11時27分PM roosi [email protected]書きました:

クラウド機能があります

const app = express()

app.get( '/ ping'、(req、res)=> {
res.send( 'pong');
})

exports.api = Functions.https.onRequest(app)

そしてそれはうまくいきます

https://...cloudfunctions.net/api/ping
ポン

次に、次の構成を追加します

{{
「ホスティング」:{
「パブリック」:「パブリック」、
「書き直し」:[{
"ソース": "/ api / **"、 "関数": "api"
}]
}
}

アプリケーションのURLから呼び出そうとすると、失敗します。

https://...firebaseapp.com/api/ping
404

このように関数へのすべての呼び出しを書き換えを使用する場合

{{
「ホスティング」:{
「パブリック」:「パブリック」、
「書き直し」:[{
"ソース": "**"、 "関数": "api"
}]
}
}

その後、それは動作します

https://...firebaseapp.com/ping
ポン

ここで何かが足りないのですか、それともこのシナリオはサポートされていませんか?

これについて書いているブログがあります、それは書き直しで使用してセグメント化します:

https://firebase.googleblog.com/2017/06/serving-dynamic-content-with-cloud.html
http:// url


このスレッドにサブスクライブしているため、これを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/firebase/firebase-tools/issues/392 、またはミュート
スレッド
https://github.com/notifications/unsubscribe-auth/AAAD_updmJ5mvK9NFrx5v-a0lQckEhaHks5sMcRogaJpZM4OSaDu

全てのコメント3件

高速ルートの先頭に/ apiを追加する必要があります。 プレフィックスはありません
URLがクラウド機能に送信されるときに切り落とされます。

日、2017年7月9日には、11時27分PM roosi [email protected]書きました:

クラウド機能があります

const app = express()

app.get( '/ ping'、(req、res)=> {
res.send( 'pong');
})

exports.api = Functions.https.onRequest(app)

そしてそれはうまくいきます

https://...cloudfunctions.net/api/ping
ポン

次に、次の構成を追加します

{{
「ホスティング」:{
「パブリック」:「パブリック」、
「書き直し」:[{
"ソース": "/ api / **"、 "関数": "api"
}]
}
}

アプリケーションのURLから呼び出そうとすると、失敗します。

https://...firebaseapp.com/api/ping
404

このように関数へのすべての呼び出しを書き換えを使用する場合

{{
「ホスティング」:{
「パブリック」:「パブリック」、
「書き直し」:[{
"ソース": "**"、 "関数": "api"
}]
}
}

その後、それは動作します

https://...firebaseapp.com/ping
ポン

ここで何かが足りないのですか、それともこのシナリオはサポートされていませんか?

これについて書いているブログがあります、それは書き直しで使用してセグメント化します:

https://firebase.googleblog.com/2017/06/serving-dynamic-content-with-cloud.html
http:// url


このスレッドにサブスクライブしているため、これを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/firebase/firebase-tools/issues/392 、またはミュート
スレッド
https://github.com/notifications/unsubscribe-auth/AAAD_updmJ5mvK9NFrx5v-a0lQckEhaHks5sMcRogaJpZM4OSaDu

@roosi私も先週この問題に遭遇しました。 煩わしいですが、このようなシナリオで思いつく最善の解決策は、他のすべての関数をホストするmain関数を作成し、それに対するすべてのホスティング呼び出しを書き直すことです。 これにより、たとえばhttps://...firebaseapp.com/api/pingを呼び出すことができます。

詳細については、ここで私の答えを参照してください。
https://stackoverflow.com/a/45224176/1309346

このページは役に立ちましたか?
0 / 5 - 0 評価