2017-05-30 1 views
2

Donc, disons dans mon dossier public dans Firebase j'ai un index.html et un salon.html.Comment faire pour gérer le routage URL dynamique dans l'hébergement Firebase

Maintenant pour une URL comme xyz.com/salon/43 Je veux charger salon.html et dans le javascript je veux chercher salon 43 à partir de la base de données en temps réel.

En ce moment je peux avoir des URLs comme xyz.com/salon?id=43. Je me demande s'il est possible de faire le premier dans l'hébergement Firebase et si oui comment.

+1

Vous pouvez également utiliser l'hébergement dynamique: https://firebase.google.com/docs/hosting/ fonctions –

+0

Merci! Je ne savais pas que les fonctions de nuage pourraient être utilisées de cette façon. '... vous pouvez avoir une URL comme/blog/. Ce modèle d'URL peut être pointé vers une fonction qui utilise dynamiquement le paramètre ID de blog post ID pour extraire le contenu de façon dynamique à partir de votre base de données Firebase Realtime. » –

Répondre

8

Vous recherchez Firebase Hosting rewrites. À partir du documentation:

Utilisez une réécriture lorsque vous souhaitez afficher le même contenu pour plusieurs URL. Les réécritures sont particulièrement utiles avec la correspondance de modèle, car vous pouvez accepter n'importe quelle URL correspondant au modèle et laisser le code côté client décider de ce qu'il doit afficher. Les règles de réécriture peuvent être utilisées pour prendre en charge les applications utilisant HTML5 pushState pour la navigation. Lorsqu'un navigateur tente d'ouvrir une URL source spécifiée, le contenu du fichier lui est attribué à l'URL de destination.

réécritures d'URL peuvent être spécifiées en définissant une section rewrites au sein de l'hébergement dans le fichier firebase.json:

"hosting": { 
    // Add the "rewrites" section within "hosting" 
    "rewrites": [ { 
    "source": "**", 
    "destination": "/index.html" 
    } ] 
} 
+0

Merci! C'est parfait. J'avais vu cela mais je n'avais pas réalisé que l'URL serait maintenue contrairement à une redirection. Aurait dû l'essayer avant de poser la question. –

+1

Pas de soucis. J'ai presque répondu avec des redirections, puis j'ai réalisé qu'il ne serait pas maintenir l'état. –