Res*_*lly 6 firebase google-cloud-functions google-cloud-firestore
在我的应用程序中验证用户后,我想创建一个云函数,在我的firestore userProfile集合中为它们创建用户配置文件.
这是我的整个index.js文件,用于云功能
// The Cloud Functions for Firebase SDK to create Cloud Functions and setup triggers.
const functions = require('firebase-functions');
// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
//function that triggers on user creation
//this function will create a user profile in firestore database
exports.createProfile = functions.auth.user().onCreate(event => {
// Do something after a new user account is created
return admin.firestore().ref(`/userProfile/${event.data.uid}`).set({
email: event.data.email
});
});
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误
TypeError: admin.firestore(...).ref is not a function
at exports.createProfile.functions.auth.user.onCreate.event (/user_code/index.js:13:30)
at Object.<anonymous> (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:59:27)
at next (native)
at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71
at __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12)
at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:53:36)
at /var/tmp/worker/worker.js:695:26
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
Run Code Online (Sandbox Code Playgroud)
在firestore云数据库中,我有一个名为userProfile的集合,其中应该创建一个文档,其中包含在认证后给用户的唯一ID
Dou*_*son 11
admin.firestore()返回Firestore对象的实例.从API文档中可以看出,Firestore类没有ref()方法.您可能会将它与Realtime Database API混淆.
Firestore要求您在集合中组织文档.要访问文档,您可以这样做:
const doc = admin.firestore().doc(`/userProfile/${event.data.uid}`)
Run Code Online (Sandbox Code Playgroud)
这doc是DocumentReference.然后,您可以像这样设置该文档的内容:
doc.set({ email: event.data.email })
Run Code Online (Sandbox Code Playgroud)
请务必阅读Firestore 文档以了解如何设置Firestore - 有许多地方与实时数据库不同.
这是我的代码。当我将在下面创建新用户时,函数将运行。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.createProfile = functions.auth.user().onCreate((user) => {
var userObject = {
displayName : user.displayName,
email : user.email,
};
return admin.firestore().doc('users/'+user.uid).set(userObject);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7881 次 |
| 最近记录: |