Пожалуйста, помогите мне, почему мой Arduino Uno R4 Wi -Fi все еще не может отправить данные в мою базу данных Firebase?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Пожалуйста, помогите мне, почему мой Arduino Uno R4 Wi -Fi все еще не может отправить данные в мою базу данных Firebase?

Сообщение Anonymous »

onAuthStateChanged(auth, async (user) => {
if (user) {
try {
const idToken = await user.getIdToken(true);
console.log("User Auth Token:", idToken);

sendTokenToArduino(idToken);

const userRef = ref(db, `users/${user.uid}`);
const response = await get(userRef);

if (response.exists()) {
const data = response.val();
console.log('User Data:', data);

document.getElementById('userNameText').innerText = data.name;

async function fetchData() {
try {
const fetchResponse = await fetch(
`I remove my database URL for security purposes`
);
const fetchData = await fetchResponse.json();
console.log("Fetched Data:", fetchData);
} catch (fetchError) {
console.error("Error fetching external data:", fetchError);
}
}

onValue(ref(db, `users/${user.uid}/wasteData`), (snapshot) => {
if (snapshot.exists()) {
const wasteData = snapshot.val();
console.log('Real-time waste data:', wasteData);

if (wasteData.dryWaste !== undefined && wasteData.wetWaste !== undefined) {
updateCharts(wasteData.dryWaste, wasteData.wetWaste);
} else {
console.log("Incomplete waste data. Check Firebase structure.");
}
} else {
console.log("No waste data available.");
}
});

listenForNotifications(user.uid);

onValue(ref(db, `users/${user.uid}`), async (snapshot) => {
if (snapshot.exists()) {
console.log("User data updated, fetching new data...");
await fetchData();
}
});

} else {
console.log('No data available for this user');
}

} catch (error) {
console.error("Error getting user token or data:", error);
}

} else {
window.location.href = 'index.html';
}
});

document.getElementById("sendTokenButton").addEventListener("click", async () => {
const user = auth.currentUser;
if (user) {
const idToken = await user.getIdToken(true);
console.log("User clicked send token, sending:", idToken);
await sendTokenToArduino(idToken);
} else {
console.error("No authenticated user found.");
}
});

async function sendTokenToArduino(idToken) {
try {
const port = await navigator.serial.requestPort();
await port.open({ baudRate: 9600 });

const writer = port.writable.getWriter();
const token = "";

await writer.write(new TextEncoder().encode(idToken + "\n" ));
writer.releaseLock();

console.log("Token sent successfully!");
} catch (error) {
console.error("Error sending token:", error);
}
}

void sendDataToFirebase(int dryWaste, int wetWaste) {
if (WiFi.status() == WL_CONNECTED && idToken.length() > 0) {
String url = "/users/" + uid + "/wasteData.json?auth=" + idToken;

DynamicJsonDocument doc(1024);
doc["dryWaste"] = dryWaste;
doc["wetWaste"] = wetWaste;
String jsonData;
serializeJson(doc, jsonData);

Serial.println("Sending data to Firebase...");

http.beginRequest();
http.post(url);
http.sendHeader("Content-Type", "application/json");
http.sendHeader("Content-Length", jsonData.length());
http.beginBody();
http.print(jsonData);
http.endRequest();

int statusCode = http.responseStatusCode();
String response = http.responseBody();

if (statusCode == 200) {
Serial.println("Data sent successfully");
Serial.println(response);
} else {
Serial.print("Error on HTTP request: ");
Serial.println(statusCode);
}
} else {
Serial.println("WiFi not connected or Token missing. Cannot send data.");
}
}
< /code>
В приведенном выше коде это указывает на мой код веб -приложения, где это тот, кто несет ответственность за получение данных, которые поступили из моего arduino uno r4 wifi. Я внедряю токен ключ как для кода веб -приложения, так и для кода Arduino, а также использую метод POST при отправке данных из моей Arduino в мою базу данных Firebas случается с моей базой данных. Мой ожидаемый результат - датчики, которые я использовал, отправят данные в мою базу данных Firebase, и если в моей базе данных есть изменения в данных, мое веб -приложение автоматически покажет, что изменения, поскольку я использую функцию Onathchange.

Подробнее здесь: https://stackoverflow.com/questions/794 ... y-firebase
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»