2

我目前正在测试出新公司的FireStore,但我总是得到它告诉我一些关于已逾期云功能与公司的FireStore错误“已逾期”

{ Error: Deadline Exceeded 
    at /user_code/node_modules/firebase-admin/node_modules/grpc/src/node/src/client.js:554:15 
    code: 16, 
    metadata: Metadata { _internal_repr: {} }, 
    note: 'Exception occurred in retry method that was not classified as transient' } 

同样的问题,这是我的当前的代码似乎罚款(和作品时,我把它部署到火力地堡)

const functions = require('firebase-functions'); 

const admin = require('firebase-admin'); 
var serviceAccount = require("./xxxxxxxx-firebase-adminsdk.json"); 

admin.initializeApp({ 
    credential: admin.credential.cert(serviceAccount), 
    databaseURL: "https://xxxxxxxxx-xxxx.firebaseio.com" 
}); 

exports.registerUser = functions.auth.user().onCreate(event => { 
    admin.firestore().collection('users').doc(event.data.uid).set({ 
    name: 'Test User', 
    country: 'USA' 
    }).catch(error => { 
    console.log(error); 
    }) 
}); 

这也表明该消息函数返回undefined,预计临大小或值

+0

“已逾期”是因为的公司的FireStore限制。 https://stackoverflow.com/a/47844661/4860874 –

回答

8

使用云功能触发器,您需要return a promise,当工作完成后,该功能将被解析。文件上的set()方法返回一个承诺,所以你应该回到它让云功能知道什么时候是安全的清理功能:

exports.registerUser = functions.auth.user().onCreate(event => { 
    return admin.firestore().collection('users').doc(event.data.uid).set(...) 
}); 
+0

@JeromeGoldstein为什么你不要问这是一个单独的问题,因为它不直接关系到这里的问题? –