无法在 Android 上使用 Cloud Firestore 保存文档
Posted
技术标签:
【中文标题】无法在 Android 上使用 Cloud Firestore 保存文档【英文标题】:Can't save document using cloud firestore on android 【发布时间】:2019-01-08 11:49:09 【问题描述】:我正在尝试按照 cloud firestore 上的文档将文档保存在集合中。我可以读取我在 Firebase 控制台上手动创建的集合/文档,但尝试从我的 android 应用程序存储时不起作用。
控制台/Logcat 没有显示任何错误,应用程序也没有崩溃。 两个听众都没有被叫到。 我错过了什么吗?
class UserActivity : AppCompatActivity()
private val db = FirebaseFirestore.getInstance()
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_profile)
save_button.setOnClickListener storeUser()
private fun storeUser()
val user = HashMap<String,Any>()
user.put("first", "Ada")
user.put("last", "Lovelace")
user.put("born", 1815)
db.collection("users")
.add(user)
.addOnSuccessListener(OnSuccessListener<DocumentReference> documentReference -> Log.d("Storing User", "DocumentSnapshot added with ID: " + documentReference.id) )
.addOnFailureListener(OnFailureListener e -> Log.w("Storing User", "Error adding document", e) )
编辑:
尝试读取文档的更新会引发以下异常
com.google.firebase.firestore.FirebaseFirestoreException:未能 获取文档,因为客户端离线。
【问题讨论】:
只有在数据提交到服务器或被服务器拒绝后,才会调用成功/失败侦听器。你确定你已经连接到服务器了吗? 您是否拥有将数据保存到数据库的正确权限? @FrankvanPuffelen 我想是的,正如我在问题上所说的,我可以从数据库中读取数据。 @AlexMamo 我在创建数据库时选择了“测试”选项。这是默认服务 cloud.firestore match /databases/database/documents match /document=** allow read, write; 【参考方案1】:看来我需要在 AndroidManifest.xml
中添加以下权限<uses-permission android:name="android.permission.INTERNET" />
但我觉得这很奇怪,因为没有它我可以使用 firebase auth 方法登录。
【讨论】:
【参考方案2】:我遇到了同样的问题。卡巴斯基杀毒软件是有罪的。禁用您的防病毒软件。 https://***.com/a/50535344/3456124
【讨论】:
以上是关于无法在 Android 上使用 Cloud Firestore 保存文档的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Cloud Messaging - 更改 Android 上 Web 通知的默认 Chrome 图标
Android 应用错误 - 您必须在 Google Cloud 项目上启用结算功能
Phaser HTML5 应用程序通过Phonegap Cloud Build 移植后无法播放声音