Android Firestore中的默认值
我正在使用Firebase为我的Android项目(kotlin)处理身份验证和其他后端调用。只要注册了新用户,它就可以在我的应用程序中免费执行一个操作。这些行动通常需要1个学分 在users集合中,我想为所有新注册的用户设置一个默认值(列积分)。我可以将此信息从我的应用程序发送到firestorm,但我相信这可以进行反向工程,让用户向后端发送更高的默认值 然后我想到了云函数。我可以创建一个函数,在创建新用户时触发该函数Android Firestore中的默认值,android,firebase,kotlin,Android,Firebase,Kotlin,我正在使用Firebase为我的Android项目(kotlin)处理身份验证和其他后端调用。只要注册了新用户,它就可以在我的应用程序中免费执行一个操作。这些行动通常需要1个学分 在users集合中,我想为所有新注册的用户设置一个默认值(列积分)。我可以将此信息从我的应用程序发送到firestorm,但我相信这可以进行反向工程,让用户向后端发送更高的默认值 然后我想到了云函数。我可以创建一个函数,在创建新用户时触发该函数 exports.onUserCreated = functions.aut
exports.onUserCreated = functions.auth.user().onCreate(event => {
// logic here
});
但我想知道是否还有其他解决这个问题的方法?使用您在问题中提到的云函数是完全有效的选择 但是,如果您的功能要求是,当用户注册到您的应用程序时,他/她的用户文档(在
users
集合下)必须具有固定的初始分数值,则您可以使用如下方法:
service cloud.firestore {
match /databases/{database}/documents {
// ....
match /users/{userID} {
allow create: if request.resource.data.score == 5;
allow update: ...
allow read: ....
}
}
}
根据上述规则,我们将创建文档的条件与更新和读取现有文档的条件分开。请参阅“”上的文档。因此,我们可以很容易地定义分数初始值的约束
为此,我们使用request.resource
变量,该变量“包含文档的未来状态”,请参阅
您可以从9点40分开始观看以下官方视频了解更多详细信息:使用您在问题中提到的云功能是完全有效的选择
但是,如果您的功能要求是,当用户注册到您的应用程序时,他/她的用户文档(在users
集合下)必须具有固定的初始分数值,则您可以使用如下方法:
service cloud.firestore {
match /databases/{database}/documents {
// ....
match /users/{userID} {
allow create: if request.resource.data.score == 5;
allow update: ...
allow read: ....
}
}
}
根据上述规则,我们将创建文档的条件与更新和读取现有文档的条件分开。请参阅“”上的文档。因此,我们可以很容易地定义分数初始值的约束
为此,我们使用request.resource
变量,该变量“包含文档的未来状态”,请参阅
您可以从9点40分开始观看以下官方视频了解更多详情: