我想创建一个云函数,让用户在特定条件下读取另一个用户的一些用户信息。
例如:
const user1 = ??? // user1 is the current user
const user1Data = await firestore().collection('Users').doc('user1.uid').get()
const user2 = ??? // user2 is the user whith user2.uid == user1Data.partnerUid
const user2Data = await firestore().collection('Users').doc('user2.uid').get()
if (user1Data.partnerEmail == user2.email && user1Data.partnerEmail == user2.email) {
// ...
// the endpoint deliver some of the user2 data to user1.
// ...
}
我看过云功能的文档:https://firebase.google.com/docs/reference/functions/providers_auth_
我已经看到,使用admin API,我们可以调用getUser:admin.auth((.getUser(uid(
我不清楚functions.auth((和admin.auth((之间的区别。我们可以在云函数中调用admin吗?
函数.auth((和admin.auth
从firebase函数导入functions
时,得到的只是一个用于构建部署函数定义的SDK。它不做任何其他事情。无法使用functions
访问用户数据。
当您从firebase admin导入admin
时,您可以访问firebase admin SDK,该SDK可以在firebase Authentication中实际管理用户数据。您需要根据需要使用它来查找和修改用户,并且在云函数中运行代码时,它运行得很好。
我不清楚functions.auth((和admin.auth((之间的区别。我们可以在云函数中调用admin吗?
基本上functions.auth()
,将允许您触发云功能以响应Firebase用户帐户的创建和删除。例如,您可以向刚刚在您的应用程序中创建帐户的用户发送欢迎电子邮件:
exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => {
// ...
});
functions.auth()
来自云功能包:
// The Cloud Functions for Firebase SDK to create Cloud Functions and setup triggers.
const functions = require('firebase-functions');
使用上面的包,您可以预生成firestore、数据库或auth触发器,这些触发器将在数据库中创建数据或创建新用户时运行。。。
// The Firebase Admin SDK to access Cloud Firestore.
const admin = require('firebase-admin');
admin.initializeApp();
firebase admin-sdk用于从云功能内部的特权环境示例访问数据库。
检查以下链接:
https://firebase.google.com/docs/functions/use-cases
https://firebase.google.com/docs/functions/auth-events
https://firebase.google.com/docs/admin/setup
https://firebase.google.com/docs/functions/auth-events