如何获取字符串的第n个字符?我尝试了托架([])访问器没有运气.
var string = "Hello, world!"
var firstChar = string[0] // Throws error
Run Code Online (Sandbox Code Playgroud)
错误:'subscript'不可用:不能使用Int下标String,请参阅文档注释以供讨论
{
"movies": {
"movie1": {
"genre": "comedy",
"name": "As good as it gets",
"lead": "Jack Nicholson"
},
"movie2": {
"genre": "Horror",
"name": "The Shining",
"lead": "Jack Nicholson"
},
"movie3": {
"genre": "comedy",
"name": "The Mask",
"lead": "Jim Carrey"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我是Firebase的新手.我如何可以检索从上面的数据结果,其中genre = 'comedy'与lead = 'Jack Nicholson'?
我有什么选择?
来自文档:
您还可以链接多个where()方法以创建更具体的查询(逻辑AND).
我该如何执行OR查询?例:
status为openOR的文档upcomingstatus == openORcreatedAt <= <somedatetime>database firebase google-cloud-platform google-cloud-firestore
我一直在使用Firebase Real Time Fatabase,今天我遇到了Cloud Firestore.我无法弄清楚如何在Firestore上使用LIKE运算符.
Firebase实时数据库
ref.child('user').orderByChild('name').startAt(name).endAt(name+'\uf8ff')
Run Code Online (Sandbox Code Playgroud)
在Cloud Firestore上,我试过了
userRef.where('name', '>=', name); <br>
userRef.where('name', '<=', name);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
从文档"... where()方法有三个参数:要过滤的字段,比较操作和值.比较可以是<,<=,==,>或> = ... "
我们需要执行的查询是:
在这个问题中,建议是实施全文搜索,例如Elastic或Algolia.我不需要全文搜索 - 我只需要这些基本操作符来搜索指定的字段.但我遇到的更大的问题是我的应用程序离线很长一段时间,我们将离线所需的数据缓存,离线全文搜索不是一个选项(除非你获得企业版($$) $$$$)Algolia的许可证 - 但对于我们正在寻找的东西似乎仍然过度.
当你在"???"中有任何解决方案("FIELD","???","string")是"不等于","包含","不包含",还是"以...开头"?
感谢任何想法.
我的客户有一个基于 Firebase 的项目。他们希望我为其核心添加一些功能,并对客户端应用程序进行必要的更改。要求的新功能之一是基于文本的 Firestore 文档搜索。但是这个解决方案应该是完全免费的。
根据Firebase 文档,我可能会使用Algolia或ElasticSerach或它们的等价物。但是要使用这些服务,我应该为服务付费,或者租用 Google Cloud Platform 或 AWS 部署,或者标准的专用服务器,所有这些解决方案都需要定期付款。
所以,最后,我有 2 个解决方案。
1. 客户端搜索
查询所有文档并对其执行搜索。
2. 使用 Cloud Functions
查询云函数中的所有文档并返回搜索结果。
这两种方法都会增加 Firebase 的使用。这可能会导致超出限额和意外发票。
我的问题是,有免费的搜索服务吗?你有比我更好的主意吗?如果你不这样做;哪种方法更好?
我更新了我的 firebase 函数,现在我在 Firebase 控制台中收到此错误。代码仍然相同,但我现在收到一个错误:
/srv/node_modules/@google-cloud/firestore/build/src/collection-group.js:54
async *getPartitions(desiredPartitionCount) {
^
SyntaxError: Unexpected token *
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:617:28)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/srv/node_modules/@google-cloud/firestore/build/src/index.js:39:28)
Run Code Online (Sandbox Code Playgroud)
这是我的云函数 TypeScript 源:
import * as functions from 'firebase-functions';
import admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
/********************************************************************/
exports.newChatMessage = functions.firestore
.document('/games/{gameId}/chat/{chatId}')
.onCreate((snap, context) => {
const createData = snap.data();
if(!createData) {
return false;
}
const chatMessage = createData.message; …Run Code Online (Sandbox Code Playgroud) 我在 Firestore 中收集了大量具有随机 ID 的文档,每个文档都有两个字段:名称和描述。我希望我的应用程序允许用户输入一系列字符,然后向他展示包含该字符序列(例如名称字段)的所有文档。使用 Firebase 及其查询是否可行?如果可以,您能给我一个 Kotlin 或 Java 代码示例吗?我知道有一些方法,例如hasChild()或child("child name").exists(),但由于我还不知道用户正在查找哪个文档,如果我没有弄错的话,我无法使用它们。
例如,如果我有 3 个具有以下名称(“mike”、“michael”、“dave”)的文档的集合,并且用户输入“mi”,我希望能够检索其名称的文档是“迈克”和“迈克尔”。
firebase ×6
database ×2
android ×1
character ×1
collections ×1
javascript ×1
node.js ×1
string ×1
swift ×1