无法检查 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 从子集合中加载文档,然后从中确定父路径。