使用 Get 的奇怪行为错误 - 提供的字符串键索引无效

问题描述

我正在使用 Firebase RTDB,使用 pyrebase4 python3 包装器:pyrebase

我有两个 python3 模块,它们的代码几乎与这个小示例项目相同,但是当我运行代码时却失败了。

出勤.py

attendance_within_date = self.firebase_db.child(f"{w_game}/{attendance_db_child}").order_by_key().start_at(str(t_start_time)).end_at(str(t_end_time)).get()

任务.py

quest_within_date = self.firebase_db.child("genshin/quests").order_by_key().start_at(str(e_start_time)).end_at(str(e_end_time)).get()

quest.py 代码行工作得很好,但这里的出席率.py 不断收到此错误,从日志回溯:

2021-06-23 13:41:26,638 ERROR A1RPGAttendance,aggregate_attendance_firebase - Incorrect inputs?: [Errno 400 Client Error: Bad Request for url: https://SECRET.firebaseio.com/%20genshin/attendance_test.json?orderBy=%22%24key%22&startAt=%221621839600.0%22&endAt=%221621839600.0%22] {
  "error" : "Provided string key index is invalid"
}

我不确定问题是什么。 Firebase 规则对每个文档/集合具有相同的规则。

解决方法

firebaser 在这里

您尝试过滤的值中有一个点 (.),但键中不允许存在点。您需要从传递给 Firebase 的值中修剪这些值。

我承认还必须与数据库工程师仔细核对,因此他们提交了内部问题以改进该错误消息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...