Reputation: 391
I am currently using the Trigger Email extension from Firebase to send emails whenever someone is invited to use the app by another user. I configured everything correctly and it is working perfectly except for one thing which is clickable links in the email.
I am using Handlebars with a template which is defined within a Firestore document. The template is made with HTML and looks like this:
<p>Hello {{invitedUser.firstName}},</p>
<p>You've been invited by {{user.fullName}} to join them on App Name here. By clicking on the link below you can accept this invitation.</p>
<p><a>{{inviteUrl}}</a></p>
<p>Best,<br>App Name here</p>
The email will be delivered but the inviteUrl is not clickable, it does display the url within the email. I also tried it using three brackets like {{{inviteUrl}}}.
I have also tried the following:
<p>Hello {{invitedUser.firstName}},</p>
<p>You've been invited by {{user.fullName}} to join them on App Name here. By clicking on the link below you can accept this invitation.</p>
<p><a href="{{inviteUrl}}">Accept invitation</a></p>
<p>Best,<br>App Name here</p>
But in this case the email is not delivered at all.. I don't know whats going wrong there. If I do the same but define a url directly instead of using inviteUrl the url is displayed but not clickable.
I have also seen some weird cases where I pasted a html example of a link online in my html and it worked and it stopped working whenever I modified the url, even when I changed the url back to the original one which was working before.
Using helpers for handlebars is not really an option as far as I have read as I am using the Trigger Email extension.
Maybe something is going wrong with storing the HTML in a string field in Firestore but I tried everything I know which is why I am asking this question here.
Upvotes: 1
Views: 330
Reputation: 391
Alright, found the answer myself...
I was creating the Firestore mail objects from node js and the url I was using was of type any
, casting it to String
made it work.
The data object was:
{
inviteUrl: dynamicLink,
}
Changing it to this fixed it:
{
inviteUrl: String(dynamicLink),
}
The working html is:
<a href="{{inviteUrl}}">Accept invitation</a>
Upvotes: 1