我尝试使用bool查询cloudfirestore中是否存在文档。不幸的是,我的代码无法正常工作
我尝试了以下操作,但bool并没有改变。
getok() {
bool ok;
Firestore.instance.document('collection/$name').get().then((onexist){
onexist.exists ? ok = true : ok = false;
}
);
if (ok = true) {
print('exist');
} else {
print('Error');
}
}
答案 0 :(得分:6)
一个简单的异步/等待函数,您可以调用该函数来检查文档是否存在。返回true或false。
bool docExists = await checkIfDocExists('document_id');
print("Document exists in Firestore? " + docExists.toString());
/// Check If Document Exists
Future<bool> checkIfDocExists(String docId) async {
try {
// Get reference to Firestore collection
var collectionRef = Firestore.instance.collection('collectionName');
var doc = await collectionRef.document(docId).get();
return doc.exists;
} catch (e) {
throw e;
}
}
答案 1 :(得分:1)
您可以尝试此方法对我有用
Future getDoc() async{
var a = await Firestore.instance.collection('collection').document($name).get();
if(a.exists){
print('Exists');
return a;
}
if(!a.exists){
print('Not exists');
return null;
}
}
答案 2 :(得分:0)
首先,您需要等待答案,然后,您总是从数据库中获得答案。这就意味着onexists确实存在。
您可以检查文档是否存在.documentID。像这样:
try {
var res = await Firestore.instance.document('collection/$name').get();
print(res.documentID ? 'exists' : 'does not exist');
} catch (err) {
print(err);
}
答案 3 :(得分:0)
您可以尝试通过IDS尝试这样做
static Future<bool> checkExist(String docID) async {
bool exists = false;
try {
await Firestore.instance.document("users/$docID").get().then((doc) {
if (doc.exists)
exists = true;
else
exists = false;
});
return exists;
} catch (e) {
return false;
}
}