【问题标题】:Where clause in Flutter Firestore query not working with value from variableFlutter Firestore 查询中的 Where 子句不适用于变量中的值
【发布时间】:2021-12-01 11:42:03
【问题描述】:

我正在尝试流式传输过滤后的 Firestore 数据。该查询适用于硬编码值。但是,当我在 .where('field', isEqualTo: ...) 子句中使用动态值时,查询会产生 0 个结果。

这个查询工作得很好:

Stream getMediaStream({
  required String albumId,
}) {
  Stream mediaStream = _mediaCollectionReference
      .where('albumId', isEqualTo: 'jhQ6nwjWcj6rnDPDYZw4') // hardcoded
      .snapshots();
  return mediaStream;
}

但是当我用变量替换硬编码值时它不起作用:

Stream getMediaStream({
  required String albumId,
}) {
  print(albumId) // jhQ6nwjWcj6rnDPDYZw4
  Stream mediaStream = _mediaCollectionReference
      .where('albumId', isEqualTo: albumId) // dynamic
      .snapshots();
  return mediaStream;
}

我也试过了:

albumId.toString()
'$albumId'
'${albumId.toString()}'
'"$albumId"'
'\'$albumId\''

知道为什么会这样吗?

【问题讨论】:

    标签: flutter dart google-cloud-firestore


    【解决方案1】:

    当然,问题出在其他地方。 albumId 设置之前调用了函数getMediaStream。很抱歉浪费了您的时间。

    【讨论】:

      猜你喜欢
      • 2021-01-07
      • 2021-09-12
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2018-07-08
      相关资源
      最近更新 更多