【发布时间】:2021-02-27 18:02:20
【问题描述】:
我在将数据写入 Firebase 中的实时数据库时遇到问题。我的设置如下:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val actionBar: ActionBar = supportActionBar!!
actionBar.hide()
val database = FirebaseDatabase.getInstance()
val myRef: DatabaseReference = database.getReference("Course")
Timber.d(myRef.toString() + " hello there")
myRef.setValue("testUser2")
}
控制台打印出我的数据库的路径:
2021-02-27 09:49:39.137 18688-18688/com.cpen391.flappyBird.moduleDemoApp D/SignUpActivity: https://flappybird-7dea8-default-rtdb.firebaseio.com/Course你好
似乎与我的数据库的连接正常,但它只是没有更新数据:
我在这里感到困惑,任何帮助将不胜感激!
【问题讨论】:
-
用户是否有写入数据库的权限?您可以通过收听
setValue调用的完成在代码中检测到这一点。参见示例:gist.github.com/puf/4a94a01e3c2510298ee46d0a7f90ab75 -
我尝试使用 Log.d 调用 addOnCompleteListener ,但没有打印任何内容。规则设置为真。顺便说一句,读写。
-
如果完成处理程序永远不会被调用,这意味着调用永远不会在服务器上完成。您确定该设备具有稳定的互联网连接吗?
-
你说得对,我的朋友!问题是中国的互联网无法访问外部世界......难怪它永远不会完成请求......
-
很高兴听到这解释了您所看到的。 ???如果您enable disk persistence,您可能会获得相当不错的初始开发人员体验,因为 Firebase 会将待处理的写入保存到本地磁盘。您将无法与其他客户端同步。
标签: android firebase firebase-realtime-database