javascript - 数据保存到事件我得到 Push key 。但是 Event_key 分配 EventList { ref : Event_key } Firebase 实时数据库时出现问题
问题描述
我在事件下保存了一些数据以及用户参考所需的位置/密钥。所以我试图保存用户/事件列表 { ref : Event_Key }。但是我得到了错误然后与字符串连接,即使我得到了一个错误。
控制台输出
OnSumit Working
Postjobc.js:11 getLocation Working
Postjobc.js:47 Fist Condition Ok : undefined
Postjobc.js:68 0
Postjobc.js:23 Eventinsert Working :-MF0_ZKTuNdiN0QbIjbd (I get key )
Postjobc.js:18 position Working
logger.ts:115 [2020-08-18T12:41:19.218Z]
@firebase/database:
FIREBASE WARNING: set at /users/userId/eventlist/-MF0_berJy7yKkaZvS-G failed: permission_denied
Firebase 规则
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
},
"jobpost":{
"events":{
".read" : "auth.uid != null",
".write": "auth.uid != null"
}
实时数据库
-https://Project.firebaseio.com/celebrity_program/
-events
-MppF9d5aIkhia2u5kka (Event_key)
-user
-$uid
-eventList
-Mdhhshhsheuer
eventref : Event_Key
情况1
const Eventinsert = () => {
var EventsId = Firebase.database().ref('events/').push({
Title: Title,
Role: Role,
Location: Location,
Description: Description,
SelectionBy: SelectionBy
})
var str = EventsId.key;
var loo = true;
do {
if (typeof str !== undefined) {
console.log(str); [console output val= -MErnwYwknRZz5MFH ]
EventListInsert(str);
loo = false;
}
} while(loo)
}
EventListInsert (Key){
console.log(key); [console output : key =-MErnwYwknRZz5MFH ]
var userId = localStorage.getItem("User");
var d = new Date();
Firebase.database().ref('user/UserId/eventlist/').push({
event: key,
latitude: la,
longitude: lo,
date: d
})
}
}
我收到错误消息“错误:Reference.push 失败:第一个参数包含属性'eventlist.event”中的未定义
案例2
const Eventinsert = () => {
var EventsId = Firebase.database().ref('events/').push({
Title: Title,
Role: Role,
Location: Location,
Description: Description,
SelectionBy: SelectionBy
})
var str = EventsId.key;
var loo = true;
do {
if (typeof str !== undefined) {
var val= "str" + str;
console.log(val); [console output val= str-MErnwYwknRZz5MFH ]
EventListInsert(val);
loo = false;
}
} while(loo)
}
var userId = localStorage.getItem("User");
function EventListInsert ( Key ){
var d = new Date();
Firebase.database().ref('user/UserId/eventlist/').push({
event: Key,
latitude: la,
longitude: lo,
date: d
})
}
我得到与“错误:Reference.push 失败:第一个参数包含属性'eventlist.event”中未定义的错误相同的错误
但是如果我删除 事件:键,它会成功运行 Event_List 添加到数据库。用户需要参考我的帖子?如何解决这个问题。还有其他方法可以参考吗?
解决方案
该错误表明该event
属性可能未定义。typeof str !== undefined
不确定字符串是否未定义。最好只测试它是否str
不是假的if(str)
。
推荐阅读
- mysql - 从 lambda 函数调用 lambda 函数行为不端
- c++ - --msg4 选项是什么?
- visual-studio-code - VS Code 中有没有办法查看自动完成代码段的来源?
- ios - 我可以单独使用 Firebase 作为 IOS 推送通知的 PassThrogh
- assembly - 汇编器到达最后一个时如何重置数组索引
- google-apps-script - 使用谷歌脚本发送到多个电子邮件
- laravel - Laravel Livewire get current page ID
- java - RecyclerView 显示一行而不是多行
- latex - pandoc 处理从 markdown 到 LaTeX 的转换中的 % 符号
- java - Kafka Streams 应用程序连接到 Bootstrap 服务器