Firebase-tools: рдмрд╛рджрд▓ рд╕рдорд╛рд░реЛрд╣: /<segment>/** рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛</segment>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдЬреБрд▓ре░ 2017  ┬╖  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"
    } ]
  }
}

рдФрд░ рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпреВрдЖрд░рдПрд▓ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

https://...firebaseapp.com/api/ping
рекрежрек

рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЙрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ

{
  "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 рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рди рдкрд░ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реВрд░реНрдп, рдЬреБрд▓рд╛рдИ 9, 2017, рдкрд░ 23:27 roosi [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рди рд╣реИ

рдХреЙрдиреНрд╕реНрдЯ рдРрдк = рдПрдХреНрд╕рдкреНрд░реЗрд╕ ()

app.get('/ping', (req, res) => {
res.send ('рдкреЛрдВрдЧ');
})

Exports.api = functions.https.onRequest (рдРрдк)

рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

https://...cloudfunctions.net/api/ping
рдкрд╛рдВрдЧ

рдлрд┐рд░ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ:

{
"рдореЗрдЬрдмрд╛рдиреА": {
"рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ": "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ",
"рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ": [ {
"рд╕реНрд░реЛрдд": "/ рдПрдкреАрдЖрдИ/**", "рдлрд╝рдВрдХреНрд╢рди": "рдПрдкреАрдЖрдИ"
} ]
}
}

рдФрд░ рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпреВрдЖрд░рдПрд▓ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

https://...firebaseapp.com/api/ping
рекрежрек

рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЙрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ

{
"рдореЗрдЬрдмрд╛рдиреА": {
"рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ": "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ",
"рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ": [ {
"рд╕реНрд░реЛрдд": "**", "рдлрд╝рдВрдХреНрд╢рди": "рдПрдкреАрдЖрдИ"
} ]
}
}

рддрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

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 рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рди рдкрд░ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реВрд░реНрдп, рдЬреБрд▓рд╛рдИ 9, 2017, рдкрд░ 23:27 roosi [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рди рд╣реИ

рдХреЙрдиреНрд╕реНрдЯ рдРрдк = рдПрдХреНрд╕рдкреНрд░реЗрд╕ ()

app.get('/ping', (req, res) => {
res.send ('рдкреЛрдВрдЧ');
})

Exports.api = functions.https.onRequest (рдРрдк)

рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

https://...cloudfunctions.net/api/ping
рдкрд╛рдВрдЧ

рдлрд┐рд░ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ:

{
"рдореЗрдЬрдмрд╛рдиреА": {
"рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ": "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ",
"рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ": [ {
"рд╕реНрд░реЛрдд": "/ рдПрдкреАрдЖрдИ/**", "рдлрд╝рдВрдХреНрд╢рди": "рдПрдкреАрдЖрдИ"
} ]
}
}

рдФрд░ рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпреВрдЖрд░рдПрд▓ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

https://...firebaseapp.com/api/ping
рекрежрек

рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЙрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ

{
"рдореЗрдЬрдмрд╛рдиреА": {
"рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ": "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ",
"рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реИ": [ {
"рд╕реНрд░реЛрдд": "**", "рдлрд╝рдВрдХреНрд╢рди": "рдПрдкреАрдЖрдИ"
} ]
}
}

рддрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ https://github.com/firebase/functions-samples/blob/master/authorized-https-endpoint рдкрд░ рдЙрджрд╛рд╣рд░рдг рднреА рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Ridermansb picture Ridermansb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

FluorescentHallucinogen picture FluorescentHallucinogen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chwzr picture chwzr  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

adam-remotesocial picture adam-remotesocial  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kyleabens picture kyleabens  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ