在将文档添加到Firestore后获取文档ID。
在将文档添加到Firestore后获取文档ID。
经过仔细阅读这个之后,我仍然无法获取文档自动生成的ID。没有"then"选项。
我的代码:
var mFirestore = FirebaseFirestore.getInstance()
mFirestore.firestoreSettings = FirebaseFirestoreSettings.Builder().build()
val rls: MutableMap
rls["title"] = "一些数据"
var pop = mFirestore.collection("Users").document("mic").collection("Rls")
pop.add(rls)
创建后如何获取ID?
问题的出现原因:在Firestore中添加文档后,需要获取该文档的ID,但在文档添加完成后,无法直接获取到文档的ID。
解决方法:通过以下步骤可以获取到文档的ID。
首先,使用如下代码生成一个随机的文档ID:
var docID = mFirestore.collection("Users").document("mic").collection("Rls").document()
然后,在添加数据时,可以通过以下代码获取到刚刚生成的文档ID,并将数据添加到该文档中:
var pop = mFirestore.collection("Users").document("mic").collection("Rls").document(docID.id) pop.set(rls)
这样就可以在添加完文档后获取到文档的ID了。
问题的出现原因是想要在Firestore中添加文档后获取文档的id,但不清楚如何实现。解决方法是使用Firestore的add函数来添加文档,并在addOnSuccessListener中通过documentReference.id获取文档的id。
首先,根据文档中的说明,为了让Firestore自动生成一个id,可以使用以下方式使用'add'函数来添加文档:
// 添加一个带有生成的id的新文档。
val data = hashMapOf(
"name" to "Tokyo",
"country" to "Japan"
)
db.collection("cities")
.add(data)
.addOnSuccessListener { documentReference ->
Log.d(TAG, "DocumentSnapshot written with ID: ${documentReference.id}")
}
.addOnFailureListener { e ->
Log.w(TAG, "Error adding document", e)
}
在addOnSuccessListener中,可以通过documentReference.id来获取文档的id。
其次,确保按照文档中的说明对Firestore进行初始化,如下所示:
// 从Activity中访问Cloud Firestore实例
val db = Firebase.firestore
通过上述方法,就可以在添加文档后获取文档的id了。