Google App Maker用户选取器以及如何从目录模型返回所有​​值

时间:2017-11-14 22:28:16

标签: google-app-maker

我正在使用Google App Maker的用户选择器,它似乎只返回电子邮件地址。在使用用户选择器之前,您需要将目录模型添加到您已经完成的应用程序中。

我的问题是,有没有办法使用选定的电子邮件作为密钥并获取目录模型中的相应记录?

我有一些代码会为我正在寻找的3个值(userFullname,userPhone和userAddress)返回undefined

服务器脚本代码:

function getUserInfoByEmail(email) {

    var userFullname;
    var userPhone;
    var userAddress;

    console.log("serverCode - getUserInfoByEmail: " + email);

    var query = app.models.Directory.newQuery();

    query.filters.PrimaryEmail._equals = email;
    var records = query.run();
    if (records === null) {
        console.log("serverCode - getUserByEmail() - records is null");
    }
    console.log("serverCode - getUserByEmail() - " + records.length);


    for (var user in records) {

        if (user === null) {
            console.log("serverCode - getUserByEmail() - user is null");
        }


        console.log("serverCode - getUserByEmail() - user: " + user);
        userFullname = user.FullName;
        userPhone = user.PrimaryPhone;
        userAddress = user.PrimaryAddress;

        console.log("serverCode - getUserInfoByEmail - userPhone: " + userPhone);
        console.log("serverCode - getUserInfoByEmail - userAddress: " + userAddress);
        console.log("serverCode - getUserInfoByEmail - userFullname: " + userFullname);

    }
}

null检查不返回null,没有错误。

以下是控制台的输出:

Tue Nov 14 15:22:17 GMT-700 2017 clientCode - newValue: myemail@this.eml
Tue Nov 14 15:22:18 GMT-700 2017 serverCode - getUserInfoByEmail: myemail@this.eml
Tue Nov 14 15:22:18 GMT-700 2017 serverCode - getUserByEmail() - 1
Tue Nov 14 15:22:18 GMT-700 2017 serverCode - getUserByEmail() - user: 0
Tue Nov 14 15:22:18 GMT-700 2017 serverCode - getUserInfoByEmail - userPhone: undefined
Tue Nov 14 15:22:18 GMT-700 2017 serverCode - getUserInfoByEmail - userAddress: undefined
Tue Nov 14 15:22:18 GMT-700 2017 serverCode - getUserInfoByEmail - userFullname: undefined

欣赏任何指导和帮助。

1 个答案:

答案 0 :(得分:0)

实际上,有两个问题

  

我正在使用Google App Maker的用户选择器,它似乎只返回电子邮件地址。

如果您希望用户选择器为您提供目录记录,则可以选中valueIsRecord复选框。之后,您将能够通过widget.value访问目录记录:

enter image description here

  

返回3个值未定义的代码

您无法在javascript中使用Arraylearn more)循环遍历for...in(此构造将为您提供键,但不会为您提供值)。您可以使用forEachlearn more)或旧学校for循环(learn more)。

还有第三个选项:for...oflearn more),但App Script的javascript实现不支持它。