【发布时间】:2021-10-14 21:00:42
【问题描述】:
不知道到底发生了什么。
在输出时,我的字符串按应有的方式显示,每个值都用逗号括在双引号中。
但是当我传递我的字符串来查询我的 Firestore 数据库时,它会显示反斜杠。
我已经通过手动添加值来确保查询确实有效,并且一切正常。
我不确定它是否只是不喜欢我传递值的方式,真的是在努力!
var join = string.Join(", ", expo.SelectedItems.OfType<string>().Select(x => "'" + x.ToString() + "'").ToArray());
String withDoubleQuotes = join.Replace("'", "\"");
var tokens = withDoubleQuotes;
编辑
我有一个显示令牌列表的列表框。 我想为我的列表框中的每个选定项目更新我的 Firestore 中的每个文档。
因此,使用 FireBase 中的此查询,它将更新字段 Country 中包含值“USA”或“Japan”的每个文档。
Query query = citiesRef.WhereIn("Country", new[] { "USA", "Japan" });
我希望能够做同样的事情,但要获取所选择的值。
我的查询
var join = string.Join(", ", listBox.SelectedItems.OfType<string>().Select(x => "'" + x.ToString() + "'").ToArray());
String withDoubleQuotes = join.Replace("'", "\"");
var tokens = withDoubleQuotes;
Query query = database.Collection("users").WhereIn("tokens", new[] { tokens } );
当我这样做时它不起作用。
【问题讨论】:
-
您正在查看调试器 - 这是为您转义双引号。反斜杠实际上并不存在于字符串中。将字符串打印到控制台,您会看到。 (您的期望是什么,或者 Firestore 是如何参与其中的并不是很清楚。minimal reproducible example 真的很有帮助。)
-
请看编辑
-
问题很明确。我认为它没有删除反斜杠。我确实按照我所说的打印了字符串,并且显示效果很好。这让我很困惑,因为它显示在带有反斜杠的调试器中。
-
你想用 new[]{tokens} 实现什么?你想拥有一个带有字符串属性的对象数组还是只有一个带有一个字符串的对象?
-
我在问为什么我在转义后仍然看到反斜杠,在调试器中看到它们让我失望。无论如何,现在一切正常。
标签: c# google-cloud-firestore expo