NodeMCU interfaced with an ultrasonic sensor + Firebase

Hello,

I'm trying to get my NodeMCU ESP8266 to send data from an ultrasonic sensor to Firebase. I've been able to send data to Firebase and read data from the sensor separately, but now I''m having trouble combining the 2 programs.

Could I get some feedback on my code please?

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>

#define FIREBASE_HOST "<redacted>.firebaseio.com"
#define FIREBASE_AUTH "<redacted>"
#define WIFI_SSID "<redacted>"
#define WIFI_PASSWORD "<redacted>"

const int echoPin = 0;
const int trigPin = 2;
long duration;
int distance;
void setup() {
  Serial.begin(115200);
  delay(1000);
  
  

  // connect to wifi.
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("connecting");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("connected: ");
  Serial.println(WiFi.localIP());
  
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
  pinMode(trigPin,OUTPUT);
  pinMode(echoPin,INPUT);
}


void loop() {
  digitalWrite(trigPin,LOW);
  delayMicroseconds(10);

  digitalWrite(trigPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin,LOW);
  Serial.println("trig activated");

  duration = pulseIn(echoPin, HIGH);
  distance = duration*0.034/2;
  Serial.print("distance (cm): ");
  Serial.println(distance);
  
  Firebase.setFloat("dist", 0.0);
  Serial.println("set to 0");
  // handle error
  if (Firebase.failed()) {
      Serial.print("setting /number failed:");
      Serial.println(Firebase.error());  
      return;
  }
  
    


  delay(2000);
  Firebase.setFloat("dist", distance);
  if (Firebase.failed()) {
      Serial.print("setting /number failed:");
      Serial.println(Firebase.error());  
      return;
  }

}

Also, since the sensor runs on 5V, I'm using an arduino to power it (kinda dumb, I know) and using the ground pin of the NodeMCU as common ground. Could that be a reason why it doesn't work?