Firebase 管理员未写入数据库。
我正在实例化数据库:
var db = admin.database();
然后设置对我想要的表的引用:
var systemsRef = db.ref("systems/");
然后我有一个功能来检查“系统”(加密的硬件 ID)是否存在。
function isSystemRegistered(id){
var isTrue;
systemsRef.once('value', function(snapshot) {
isTrue = (snapshot.hasChild(id))? true : false;
});
return isTrue;
}
其中,到目前为止还返回false
;也就是说true
,因为它还不存在。如果系统不存在,则写入数据。
const sysID = getSysID();
var sys.info.name = generateUniqueSystemName();
if(isSystemRegistered(sysID){
console.log("system is already registered!");
} else {
msystemsRef.set({
sysID : sys.info.name
}, function(error){
console.log('There was an error while attempting to write to database: ' + error);
});
});
}
我已经进行了实验,并暂时将我的原型数据库完全公开了几分钟,以确保我rules
的不是问题……他们不是:仍然没有 bueno。没有写入数据库......也没有错误。
我尝试了不同的set
,请确保:
msystemsRef.set("I'm writing data", function(error) {
if (error) {
alert("Data could not be saved." + error);
} else {
alert("Data saved successfully.");
}
});
同样,我使用的是带有规则的管理员帐户,所以我应该在根目录下方public
看到一个 now表。I'm writing data
没有什么...
所以我改变了策略并尝试使用预制教程推送到数据库,而我的数据库仍然完全公开:
systemsRef.push({sysID : sys.info.name});
什么都没有……我想我失踪了吗?