2017-08-26 66 views
0

我正在嘗試爲我的移動應用創建一個下載端點。該應用程序在應用程序商店和Play商店中可用。我想擁有一個可供用戶在iOS設備或Android設備上下載應用程序的URL。我試圖找出是否可以爲此創建用於Firebase的雲端功能。我正在考慮檢查user-agent的請求,並根據請求是來自iOS設備還是Android設備或Web瀏覽器,將用戶重定向到適當的URL。我已驗證設備信息存在於user-agent標頭中。對於例如Firebase重定向到URL的雲端功能

"user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0 Mobile/14C89 Safari/602.1 AppEngine-Google; (+http://code.google.com/appengine; appid: s~gcf-http-proxy)" 

我猜接下來要做的事情是將用戶重定向到上述案例中的應用商店網址。我試圖使用res.redirect但這不起作用。最終將用戶重定向到cloud-function-base-url/redirect-url而不是僅僅是redirect-url

下面是雲功能的代碼,它只是在瀏覽器觸發功能時試圖重定向到www.google.com。

exports.appDownload = functions.https.onRequest((req, res) => { 
    console.log(stringify(req.headers)) 
    // This will eventually redirect to a store URL based on the phone in user-agent 
    res.redirect('www.google.com'); 
}); 

這結束了瀏覽器重定向到base-url/www.google.com,而不是僅僅www.google.com,我得到一個錯誤信息說Not Found。我想將瀏覽器重定向到www.google.com

我想檢查是否可以使用Firebase的雲功能來實現上述功能。

+0

請出示您的代碼,那並不是」按照您的期望工作。 –

+0

對不起,如果我從瀏覽器調用雲功能,我只是想檢查是否可以將瀏覽器重定向到不同的URL(在我的情況下是應用商店網址)。我發佈了我試過的代碼。 –

回答

1

documentation for redirect()建議您必須爲其提供完全限定的URL。注意計劃「https」開頭是在座的各位(你只是給「www.google.com」,這將被視爲相對路徑至當前URL):

res.redirect('https://www.google.com/') 
+0

太棒了,謝謝你的回答。有用。去Firebase! –