[英]How do you check if value exists within Firebase live database using Firebase Functions?
我正在嘗試通過Firebase設置實時數據庫,並使用Firebase Functions測試其中是否存在隨機值。 任何幫助將不勝感激。
我已經嘗試了下面的代碼,但最終得到“未處理的錯誤事件”。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
exports.Exists = functions.https.onRequest((request, response) => {
console.log("Hello from Firebase!");
var result = '';
var characters = 'ABCDEFGHIJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';
var charactersLength = characters.length;
for ( var i = 0; i < 4; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return admin.database().ref().once(result).then(snap => {
if (snap.exists()) {
response.send("exists");
}else{
response.send(result);
}
});
您的數據庫調用混亂了,應該是
admin.database().ref(result).once('value').then(snap => ...)
result
是您要尋找的關鍵 value
是您正在監聽“一次”的事件,也可以繼續通過ref().on('value', callback)
監聽值的更改ref().on('value', callback)
這是文檔中的相關部分: https : //firebase.google.com/docs/database/web/read-and-write#read_data_once
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.test = functions.https.onRequest((request, response) => {
return ExistTest();
function RandCharGen(length){
var result = '';
var characters = 'ABCDEFGHIJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';
var charactersLength = characters.length;
for ( var i = 0; i < length; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
function ExistTest(){
var result = RandCharGen(4);
admin.database().ref(result).once('value', (snapshot) => {
if (snapshot.exists()) {
ExistTest();
}
else{
response.send(result);
return result;
}
});
}
});
對於任何想要正確答案或知道更清潔方式的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.