【发布时间】:2020-09-02 22:47:06
【问题描述】:
我的猜测是存在问题,因为我没有返回正确的承诺? 任何帮助将不胜感激,在此先感谢。 这是我的程序任务:
(...)
.continueWith(new Continuation<HttpsCallableResult, String>() {
@Override
public String then(@NonNull Task<HttpsCallableResult> task) throws Exception {
if(task.isSuccessful()) {
Map<String, Object> result = (Map<String, Object>) task.getResult().getData();//<-- this always returns null
return (String) result.get("userID");
}
else return "Task FAILED";
}
});
}
这是我的云代码:
export const createCompany = functions.https.onCall((data,context) => {
const email = data.email //data.key
const password = data.password
admin.auth().createUser({
email: email,
emailVerified: true,
password: password,
disabled: false
})
.then(async function(userRecord) {
// See the UserRecord reference doc for the contents of userRecord.
return setAsCompany(email).then(() =>{
console.log("Company Role Granted", userRecord.email);
return {userID : userRecord.uid};
})
})
.catch(function(error) {
console.log("Error creating new user:", error);
});
});
async function setAsCompany(email: string): Promise<void>{
const user = await admin.auth().getUserByEmail(email);
console.log("ADDED AS COMPANY");
return admin.auth().setCustomUserClaims(user.uid,{
company: true,
});
}
【问题讨论】:
标签: typescript firebase asynchronous async-await google-cloud-functions