【发布时间】:2019-03-23 03:08:52
【问题描述】:
情况:
用户在没有互联网连接的情况下启动应用程序。我尝试在我的启动活动中对它们进行匿名身份验证,并在具有以下规则结构的数据库中对参考 '/users/$uid' 执行数据库写入:
{
"rules": {
"users": {
"$user_id": {
".write": "$user_id === auth.uid",
".read": "$user_id === auth.uid"
}
}
}
}
那么,如果出现这种情况,然后用户上线,排队的数据库事务是否会真正执行——还是我需要手动重新验证并重试数据库事务?
我不确定如果用户离线是否会生成用于匿名身份验证的uid,所以我认为无法解析数据库引用。
参考链接:
https://firebase.google.com/docs/auth/android/anonymous-auth https://firebase.google.com/docs/database/android/offline-capabilities
【问题讨论】:
-
是否值得寻找不同的 本地 存储解决方案,而不是使用实时数据库,因为未经身份验证的用户尝试将数据库写入这种结构的数据库的风险并且丢失交易(例如跨应用重启)会很高?
-
您是否尝试过禁用 4g 移动数据,然后在登录您的应用程序之前拔掉调制解调器,然后重新插入以查看数据是否已发送?
-
如果我禁用设备的互联网连接,执行通常需要授权/触发数据库事务的操作,则数据库不受影响。 编辑:这发生在简单地重新激活互联网连接和重新启动应用程序,然后重新激活互联网连接时。
标签: android firebase firebase-realtime-database firebase-authentication offline-caching