调用云功能admin.auth()。从的createUser()Android不工作

贾瓦德:

我想打电话从Android应用程序不起作用谷歌的云计算功能(首先调用部署工作90%的时间,但后续调用失败刚过,没有什么是要么显示火力日志控制台)。

public Task<String> myCloudFunction() {

    return FirebaseFunctions.getInstance()
            .getHttpsCallable("createUser")
            .call(data)
            .continueWith(task -> {
                String result = (String) task.getResult().getData();
                return result;
            });

}

端点功能仪表板https://开头我们-central1-XYZ:555.cloudfunctions.net/createUser

这是我如何调用它。

public void callCloudFunction() {

    createFirebaseUserAccount.myCloudFunction()
            .addOnCompleteListener(new OnCompleteListener<String>() {
                @Override
                public void onComplete(@NonNull Task<String> task) {
                    if (!task.isSuccessful()) {
                        Exception e = task.getException();
                        if (e instanceof FirebaseFunctionsException) {
                            FirebaseFunctionsException ffe = (FirebaseFunctionsException) e;
                            FirebaseFunctionsException.Code code = ffe.getCode();
                            Object details = ffe.getDetails();
                        } else {
                            Timber.d(task.getResult());
                        }
                    }
                }
            });
}

这里是云功能:$ GOOGLE_APPLICATION_CREDENTIALS指向包含私钥service_key.json文件。

admin.initializeApp({
credential: admin.credential.applicationDefault(),
databaseURL: "https://XYZ.firebaseio.com"
});
exports.createUser = functions.https.onCall((data, context) => {
 const callerEmail = data.email;
 const callerPassword = data.password;
 const callerDisplayName = data.displayName;
 return admin.auth().createUser({ 
    email: callerEmail,
    emailVerified: false,
    password: callerPassword,
    displayName: callerDisplayName,
    disabled: false
   }).then(userRecord => {
        // See the UserRecord reference doc for the contents of userRecord.
        console.log("Successfully created new user:", userRecord.uid);
        return userRecord.uid;

    }).catch(error => {
        console.log("Error creating new user ", error);
        return error;
    });
  });

谢谢阅读!:)

道格·史蒂文森:

你不返回从包含的数据发送给客户端功能的承诺。其实,你不是在所有递东西。而应该从你的异步工作回报的承诺链:

return admin.auth().createUser({ 
    email: callerEmail,
    emailVerified: false,
    password: callerPassword,
    displayName: callerDisplayName,
    disabled: false
   }).then(userRecord => {
        // See the UserRecord reference doc for the contents of userRecord.
        console.log("Successfully created new user:", userRecord.uid);
        return userRecord.uid;

    }).catch(error => {
        console.log("Error creating new user ", error);
        return error;
    });

注意新的return整个事情之前。你绝对应该花一些时间来了解JavaScript的如何才能有效地利用云计算功能的承诺的工作,他们不会不遵守他们的规则和约定正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章