在Flutter中创建后获取Firebase实体密钥

问题描述 投票:0回答:1

[使用以下测试代码在Firebase中创建新实体时:

class Person{
 String name;
 int age;
 Person({this.name, this.age});
}

Person person = new Person(name: 'John', age: '42');

.
.
.

aMethod async() {
 Firestore _firestore = Firestore.instance;
 var firestoreResult = await _firestore.collection('Example').add({
  'name': person.name,
  'age': person.age
 });
}

我想从Firebase检索其密钥。

我在调试模式下看到,firestoreResult在其参数内返回所需的键,如下所示:

firestoreResult._delegate._pathComponents[1]

问题是它的参数是私有的,因此出现以下错误:

The getter _delegate is not defined for the class DocumentReference
firebase flutter dart google-cloud-firestore
1个回答
0
投票

要获取文档ID,请尝试以下操作:

 var firestoreResult = await _firestore.collection('Example').add({
  'name': person.name,
  'age': person.age
 });
var documentId = firestoreResult.documentID;

add()方法返回类型为FutureDocumentReference,并且在类DocumentReference中,可以使用属性documentID获取ID:

https://github.com/FirebaseExtended/flutterfire/blob/master/packages/cloud_firestore/cloud_firestore/lib/src/document_reference.dart#L39

© www.soinside.com 2019 - 2024. All rights reserved.