angular - this.db.object 的 firestore 等价物是什么?
问题描述
将此概念/教程用于项目(https://angularfirebase.com/lessons/custom-usernames-with-firebase-authentication-and-angular/)但是它在firebase中,我需要Firestore等价物。
我尝试了以下方法:
checkUsername(tag: string) {
console.log('Checking Username: ' + username);
return this.afs.collection('usernames', ref => ref.where('username', '==', tag)).valueChanges();
}
我只想检索集合中的特定字段并检查它是否可用。
谢谢
解决方案
您不需要通过 snapShotChanges/valueChanges 监听更改。
只需使用 limit(1) 进行简单的获取(我们不在乎是否有超过 1 个用户名)并检查大小是否 > 0。如果 > 0 => 使用用户名,否则用户名可用:
const db = firebase.firestore()
const isUserNameTaken = async (tag: string): Promise<boolean> => {
const query = db.collection('usernames').where('username', '==', tag).limit(1)
const docs = await query.get()
return !!docs.size
}
// returns true if username taken otherwise returns false
const isTaken = await isUserNameTaken('John')
if (isTaken) // do something
推荐阅读
- python-3.x - 将“空数据框”/列表项转换为数据框?
- c# - 如何在 Unity 3D 中使用 AddForce 和 ForceMode.VelocityChange 来限制速度
- function - 迭代 n 个重复数字的函数的时间复杂度
- html - 尝试扩展我的显示/隐藏 DIV 代码以有效地定位多个 div
- ios - 背景图像未出现在 XCODE 12 中
- node.js - 快速验证器在 multer 函数后不执行
- php - 使用 Laravel 为 Twilio SMS 验证添加本地化
- json - Python Dict 解析问题
- reactjs - 使用关键路线的“快照”(静态渲染)加速大型 React 项目的最佳方法
- javascript - 三个没有定义;我该如何解决?