我正在开发离子应用程序,我想将数据作为对象发送到我的Firebase实时数据库,并将数据与某些对象进行比较,但是在服务器端(这是我对newData的安全性规则),写规则似乎不正确。
这是我的发送代码
var firebaseRef = this.afd.database.ref();
firebaseRef.child('Download/01/1').set({password:2431,name:'john'});
我的数据库节点应该写在这里
Download: {
01 : {
1: { // the data will be written here
}
}
}
这是我的安全规则
"Download": {
"$id": {
".write": "newData.child('password').val() === 4321"
}
}
如您所见,我故意将密码写在我的设置函数“ 2431”上,以便在验证写规则期间将其视为不正确的过程,但是即使输入密码,写规则仍会继续写数据库收到的信息不正确,您能建议我的代码中哪些内容正确吗?谢谢
答案 0 :(得分:1)
您的规则和查询不匹配。您正在写“ Download / 01/1”,密码设置为“ Download / 01/1 / password”。但是,您的规则设置为“下载/ XX”,并且File "C:/Users/rajat/PycharmProjects/untitled1/venv/MAINPROJECT.py", line 278, in showbillingsystem
txtreference = Entry(f1, font=('ariel', 16, 'bold'), textvariable = rand, bd=6, insertwidth=6, bg="yellow",justify = RIGHT)
File "C:\Users\rajat\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 2676, in __init__
Widget.__init__(self, master, 'entry', cnf, kw)
File "C:\Users\rajat\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 2299, in __init__
(widgetName, self._w) + extra + self._options(cnf))
File "C:\Users\rajat\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 341, in __str__
return self._name
AttributeError: 'StringVar' object has no attribute '_name'
指向“下载/ XX /密码”(请注意,路径中缺少“ 1”)。也许您的意思是这样的:
newData.child('password')
或者也许:
"Download": {
"$id": {
"$i": {
".write": "newData.child('password').val() === 4321"
}
}
}