无法检查 Firebase 中是否存在 "Long Named" 文档?
Cannot check for "Long Named" Document existence in Firebase?
我最近一直在使用 Flutter 和 Firebase,今天我遇到了一个令人困惑的问题,需要一些帮助。
我在 Firebase Cloud Firestore 中有一个集合,其中包含名称很长的文档。
下图为他们:
我在Dart中写了一个函数来检查特定文档是否存在,它也很简单:
Future<String> checkForExistance(String mnemonic) async {
final String seedHex = bip39.mnemonicToSeedHex(mnemonic);
final snapShot = await FirebaseFirestore.instance
.collection('wallets')
.doc(seedHex)
.get();
if (!snapShot.exists) {
if (kDebugMode) {
print('SnapShot not exist');
}
return 'NO_IDEA';
} else {
if (kDebugMode) {
print('Snapshot Exist');
}
return seedHex;
}
}
return 结果总是 'SnapShot not exist'。
return 始终是 'SnapShot not exist',即使我已经确定我正在检查是否存在我需要的东西。
即使我硬编码其中一个文档的名称,结果也是'SnapShot not exist'(这让我很困惑)。
Future<String> checkForExistance(String mnemonic) async {
final String seedHex = bip39.mnemonicToSeedHex(mnemonic);
final snapShot = await FirebaseFirestore.instance
.collection('wallets')
.doc(**'hard coded'**)
.get();
if (!snapShot.exists) {
if (kDebugMode) {
print('SnapShot not exist');
}
return 'NO_IDEA';
} else {
if (kDebugMode) {
print('Snapshot Exist');
}
return seedHex;
}
}
所以我尝试创建一个名称较短的文档(图像末尾的 's')并对其进行硬编码,结果 return 按预期编辑,即 'Snapshot Exist'.
是不是因为我的文档名称太长导致 Firebase 搜索没有按预期工作?
感谢大家的帮助。
从我在屏幕截图中看到的文档名称以斜体显示,这意味着没有具有该名称的文档并且控制台仅显示它,因为该路径下有子集合。
这也解释了为什么您无法通过 API 加载那些文档,没有要加载的文档。
您要么已经知道这些路径的存在,要么您可以使用 collection group query 从子集合中加载文档,然后从中确定父路径。
我最近一直在使用 Flutter 和 Firebase,今天我遇到了一个令人困惑的问题,需要一些帮助。
我在 Firebase Cloud Firestore 中有一个集合,其中包含名称很长的文档。 下图为他们:
我在Dart中写了一个函数来检查特定文档是否存在,它也很简单:
Future<String> checkForExistance(String mnemonic) async {
final String seedHex = bip39.mnemonicToSeedHex(mnemonic);
final snapShot = await FirebaseFirestore.instance
.collection('wallets')
.doc(seedHex)
.get();
if (!snapShot.exists) {
if (kDebugMode) {
print('SnapShot not exist');
}
return 'NO_IDEA';
} else {
if (kDebugMode) {
print('Snapshot Exist');
}
return seedHex;
}
}
return 结果总是 'SnapShot not exist'。
return 始终是 'SnapShot not exist',即使我已经确定我正在检查是否存在我需要的东西。
即使我硬编码其中一个文档的名称,结果也是'SnapShot not exist'(这让我很困惑)。
Future<String> checkForExistance(String mnemonic) async {
final String seedHex = bip39.mnemonicToSeedHex(mnemonic);
final snapShot = await FirebaseFirestore.instance
.collection('wallets')
.doc(**'hard coded'**)
.get();
if (!snapShot.exists) {
if (kDebugMode) {
print('SnapShot not exist');
}
return 'NO_IDEA';
} else {
if (kDebugMode) {
print('Snapshot Exist');
}
return seedHex;
}
}
所以我尝试创建一个名称较短的文档(图像末尾的 's')并对其进行硬编码,结果 return 按预期编辑,即 'Snapshot Exist'.
是不是因为我的文档名称太长导致 Firebase 搜索没有按预期工作?
感谢大家的帮助。
从我在屏幕截图中看到的文档名称以斜体显示,这意味着没有具有该名称的文档并且控制台仅显示它,因为该路径下有子集合。
这也解释了为什么您无法通过 API 加载那些文档,没有要加载的文档。
您要么已经知道这些路径的存在,要么您可以使用 collection group query 从子集合中加载文档,然后从中确定父路径。