为了使用jest运行完整测试,同时保留数据库规则,是否可以模拟经过身份验证的Firebase用户?
我有一个Firebase实时数据库,其中包含一系列围绕基本用户身份验证的基本规则:为了使用jest运行完整测试,同时保留数据库规则,是否可以模拟经过身份验证的Firebase用户?,firebase,unit-testing,testing,firebase-realtime-database,jestjs,Firebase,Unit Testing,Testing,Firebase Realtime Database,Jestjs,我有一个Firebase实时数据库,其中包含一系列围绕基本用户身份验证的基本规则: { "rules": { ".read": false, ".write": false, "users": { "$user_id" : { ".read": "$user_id === auth.uid", ".write": "$user_id === auth.uid", } } } } 这些规则取决于au
{
"rules": {
".read": false,
".write": false,
"users": {
"$user_id" : {
".read": "$user_id === auth.uid",
".write": "$user_id === auth.uid",
}
}
}
}
这些规则取决于auth.uid
内置Firebase变量,当用户使用任何给定的提供程序登录时,在开发/生产期间可以访问该变量
但是,当我使用相同的规则在重复的数据库上运行jest测试时,我无法访问此auth.uid
,因为没有实际用户登录
有办法解决这个问题吗?一种在Firebase本身或通过我的客户端测试代码模拟某种测试用户的方法
我希望测试运行在一个数据库上,该数据库尽可能类似于常规数据库。我不想在测试数据库上有不同的规则结构。我提出的可能解决方案是:
FIREBASE\u test\u UID
$user\u id“
到auth.uid
的规则更改为将其与实际存储的FIREBASE\u TEST\u uid
FIREBASE\u TEST\u UID
是私有的(.git文件)