How to configure email verification in thunkable?

I dont know how to configure my email verification system.
Can someone help me ASAP?

What have you tried? What is/is not working?

If you need immediate help, you can pay for support but otherwise, you may need to be patient.

1 Like

I havent tried anything yet…
There is a block in sign in block called “is email verified?”

How will i set it up?

Firstly you have to create firebase account set up. If you don’t know, I suggest you just go and watch some tutorials for reference. That would help.

1 Like

I have done that already and done with firebase
I want to know how to set this up
VVVVVVVVVVVVVVVVVVV
image

Did you read this ?

Will clarify everything you need to know, really.
I’ve learned from that too.

Yes i did read that, But that doesnt include email verification tutorial (I think), or i just cant find it

It only has the optional thing that just shows the template, not the actual tutorial :frowning:

Edit: i rechecked the tutorial and it includes the email verification block but when i tried it…nothing came in my mailbox

Never happened to me. I always got the mail after I create a new user. Maybe your mail provider put that mail in spam folder ?

It didnt came at my inbox nor my spam folder

If you share your project, we might be able to help you. Its almost impossible to know what’s going on without seeing it

1 Like

sure, here is the project link

https://x.thunkable.com/projects/62f78cb5dfbea60225513fd3/6019e815-c69a-4458-b12e-09327c83fd09/blocks

ok so i figured out the problem

it was in my website hosting in firebase, i had to use this code to send a email lol

2 Likes

BEAUTIFUL!!!

This is how I send invites to users that are created by an admin in my latest app! I use a firebase extension to send emails! :slight_smile: The idea for me was that the individuals 1) dont want to email verify and 2) arent signing up for the app. only admins should sign up and pay money. therefore, admins create apps via a cloud function, then send them an email to invite them to use the app and reset their password. This email can be resent at the push of a button! It’s nice! :slight_smile:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
const auth = admin.auth();
const { getAuth } = require('firebase-admin/auth');
const db = admin.firestore();
const cors = require('cors')({
  origin: true
});



module.exports.inviteUser = async function(req, res) {
      const email = req.body.email;
      const sender = req.body.sender;
      var m
      cors(req, res, async () => {
          functions.logger.log('starting inviteUser')
          const emailBucket = db.collection('mail')
          functions.logger.log('got emailBucket')
          const model = function(url, to, sender) {
            let subject = "You have been invited to ScorecardX by " + sender + ".";
            let html = `<body style="box-sizing: border-box; margin: 0;">
            <table class="main-body" style="box-sizing: border-box; min-height: 150px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; width: 100%; height: 100%; background-color: rgb(234, 236, 237);" width="100%" height="100%" bgcolor="rgb(234, 236, 237)">
              <tbody style="box-sizing: border-box;">
                <tr class="row" style="box-sizing: border-box; vertical-align: top;" valign="top">
                  <td class="main-body-cell" style="box-sizing: border-box;">
                    <table class="container" style="box-sizing: border-box; font-family: Helvetica, serif; min-height: 150px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; margin-top: auto; margin-right: auto; margin-bottom: auto; margin-left: auto; height: 0px; width: 90%; max-width: 550px;" width="90%" height="0">
                      <tbody style="box-sizing: border-box;">
                        <tr style="box-sizing: border-box;">
                          <td class="container-cell" style="box-sizing: border-box; vertical-align: top; font-size: medium; padding-bottom: 50px;" valign="top">
                           <img src="https://res.cloudinary.com/behaviorreportcard/image/upload/v1661383692/jaredgibb935-01_tbrld3.png" alt="ScorecardX" class="c926" style="box-sizing: border-box; color: rgb(158, 83, 129); width: 100%; font-size: 50px;">
                            <table class="card" style="box-sizing: border-box; min-height: 150px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; margin-bottom: 20px; height: 0px;" height="0">
                              <tbody style="box-sizing: border-box;">
                                <tr style="box-sizing: border-box;">
                                  <td class="card-cell" style="box-sizing: border-box; background-color: rgb(255, 255, 255); overflow-x: hidden; overflow-y: hidden; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: center;" bgcolor="rgb(255, 255, 255)" align="center">
                                    <table class="table100 c1357" style="box-sizing: border-box; width: 100%; min-height: 150px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; height: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-collapse: collapse;" width="100%" height="0">
                                      <tbody style="box-sizing: border-box;">
                                        <tr style="box-sizing: border-box;">
                                          <td class="card-content" style="box-sizing: border-box; font-size: 13px; line-height: 20px; color: rgb(111, 119, 125); padding-top: 10px; padding-right: 20px; padding-bottom: 0px; padding-left: 20px; vertical-align: top;" valign="top">
                                            <h1 class="card-title" style="box-sizing: border-box; font-size: 25px; font-weight: 300; color: rgb(68, 68, 68);">Your colleague has invited you to begin using ScorecardX
                                            </h1>
                                            <p class="card-text" style="box-sizing: border-box;">With ScorecardX your performance review process becomes much easier and more objective. You wont have to remember how someone was doing at any particular point in time as the app makes it easy to track and monitor ongoing process in a painless and easy way!&nbsp;
                                              <br style="box-sizing: border-box;">
                                              <br style="box-sizing: border-box;">
                                              <br style="box-sizing: border-box;">To begin using ScorecardX, click the button below to set a password for your account and then log in!&nbsp;
                                              <br style="box-sizing: border-box;">
                                            </p>
                                            <table class="c1542" style="box-sizing: border-box; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; width: 100%;" width="100%">
                                              <tbody style="box-sizing: border-box;">
                                                <tr style="box-sizing: border-box;">
                                                  <td id="c1545" class="card-footer" style="box-sizing: border-box; padding-top: 20px; padding-right: 0px; padding-bottom: 20px; padding-left: 0px; text-align: center;" align="center">
                                                    <a href='${url}' title="Reset Password" class="button" style="box-sizing: border-box; font-size: 12px; padding-top: 10px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px; background-color: rgb(217, 131, 166); color: rgb(255, 255, 255); text-align: center; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; font-weight: 300;">Start Now</a>
                                                  </td>
                                                </tr>
                                              </tbody>
                                            </table>
                                            <div class="c2421" style="box-sizing: border-box; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px;">MADE BY JARED GIBB
                                              <p id="i0sx93" data-gjs-type="text" draggable="true" style="box-sizing: border-box;">
                                                <br style="box-sizing: border-box;">
                                              </p>
                                            </div>
                                          </td>
                                        </tr>
                                      </tbody>
                                    </table>
                                  </td>
                                </tr>
                              </tbody>
                            </table>
                          </td>
                        </tr>
                      </tbody>
                    </table>
                  </td>
                </tr>
              </tbody>
            </table>
          </body>`

            return {
              to: to,
              message: {
                subject: subject,
                html: html
              }
            }
          }

          functions.logger.log('getting reset link  for ' + email)
          getAuth().generatePasswordResetLink(email)
            .then(link => {
              functions.logger.log('got reset link for ' + email)
              m = model(link, email, sender)
              return emailBucket.add(m)
            })
            .then(() => {
              res.send('success')
            })
            .catch(err => {
              functions.logger.log('error getting reset link for ' + email)
              res.send(err)
            })

        })


      }
1 Like

A post was split to a new topic: Can I create a pedometer in Thunkable?