在项目数据源中记录 Phone 号码和全名

Recording Phone Number and Full Name in Project Datasource

我在 google 应用程序制作工具中为我的应用程序实现了一个用户选择器并同步了目录。当我使用它并将电子邮件地址存储到我设置的项目数据源中时它会起作用,但我还想将电子邮件地址的关联 PrimaryPhone 和 FullName 作为单独的变量记录在我的项目数据库中。我不知道这是脚本中的代码还是数据源 onCreate 或 onLoad 中的代码。对此问题的任何帮助将不胜感激。

如果您担心安全性和数据一致性,那么您可以选择服务器端实现:

// onCreate model event handler (takes about-to-create record as parameter)
var query = app.models.Directory.newQuery();

// assuming that email field value is populated by UserPicker widget on client-side
query.filters.PrimaryEmail._equals = record.Email;
var people = query.run();

if (people.length === 1) {
  var person = people[0];

  record.FullName = person.FullName;
  record.PrimaryPhone = person.PrimaryPhone;
} else {
  // TODO: handle edge cases
}

如果您不是安全问题偏执狂,您可以:

  1. 将 UserPicker 配置为 select 整个对象(选中 'valueIsRecord' 属性 复选框)。
  2. 处理 onValueEdit UserPicker 小部件事件:
// onValueEdit UserPicker event
// assuming that widget is bound to datasource's create mode item
var draft = widget.datasource.item;

draft.Email = newValue.PrimaryEmail;
draft.FullName = newValue.FullName;
draft.PrimaryPhone = newValue.PrimaryPhone;