簡體   English   中英

如何使用帶有 FieldPat.documentId 的 where 子句過濾 firebase 數據

[英]How to filter firebase data using a where clause with FieldPat.documentId

我試圖檢索數據

Stream<List<User>> getUsers(User user) {
    List<String> userFilter = List.from(user.swipeLeft!)
      ..addAll(user.swipeRight!)
      ..add(user.uid!);

    return _firebaseFirestore
        .collection('users')
        .where('interestedIn', isEqualTo: 'HIRING')
        .where(FieldPath.documentId, whereNotIn: userFilter)
        .snapshots()
        .map((snap) {
      return snap.docs.map((doc) => User.fromSnapshot(doc)).toList();
    });
  }

我收到錯誤解析查詢 arguments 時發生錯誤,這很可能是此 SDK 的錯誤。 無效的查詢。 使用 FieldPath.documentId() 查詢時,您必須提供有效的文檔 ID,但它是一個空字符串。

我在firebase中的數據結構如下在此處輸入圖像描述

我怎樣才能解決這個問題?

在 firebase 中,您不能使用文檔 id 進行過濾,您只能使用文檔中的字段進行過濾,一種簡單的解決方案是您自己使用uuid之類的包生成唯一的 id,然后使用 id 保存文檔將 id 保存在文檔字段中,然后您可以使用文檔字段中的 id 進行過濾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM