簡體   English   中英

寫入實時數據庫的Firebase用戶身份驗證觸發器

[英]Firebase user authentication trigger that writes to realtime database

exports.setupDefaultPullups = functions.auth.user()
    .onCreate(
        async (user) => {
            const dbRef= functions.database.ref;
            let vl= await (dbRef.once('value').then( (snapshot) => {
                return snapshot.ref.child('userInfo/'+user.uid).set(18);
            }));
            return vl;
        }
    );

我正在嘗試為Firebase中的新用戶編寫一些初始設置的觸發器。 但是,以上代碼不起作用。 怎么了 基本上,在注冊新用戶時,我想使用上述路徑將他/她的屬性“ defaultPullUps”設置為18。

編輯:很抱歉沒有提供詳細信息。 最初,“ async”關鍵字存在問題,已通過更新node.js引擎解決。 現在,根據我如何調整代碼,我會收到各種錯誤消息。 有時它說“ ...不是函數”。

編輯:盡管我同意我的問題沒有達到標准,但其中有一個價值:在Firebase身份驗證觸發器的在線文檔中,未顯示如何訪問“主”數據庫https://firebase.google.com /文檔/功能/ AUTH-事件

編輯'':這是整個消息:

TypeError: Cannot read property 'child' of undefined
at exports.setupDefaultPullups.functions.auth.user.onCreate.user (/srv/index.js:15:36)
at cloudFunctionNewSignature (/srv/node_modules/firebase-functions/lib/cloud-functions.js:105:23)
at /worker/worker.js:756:24
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:228:7)

這行沒有意義:

const dbRef= functions.database.ref;

如果要在從其他來源觸發的Cloud Function中使用Firebase Realtime數據庫(例如您的Firebase身份驗證),則可以使用Firebase Admin SDK進行操作。

有關此示例,請參閱“ Cloud Functions 入門”文檔的“ 針對Cloud Functions初始化Firebase SDK”部分。 具體來說,您需要使用以下方法導入和初始化:

 // 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(); 

然后可以使用以下命令從您的函數訪問數據庫:

const dbRef= admin.database().ref();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM