将动态子项添加到我的Firebase参考URL

Jon*_*rge 2 firebase

我一直在尝试动态地将一个子项添加到我的firebase数据引用URL,到目前为止没有运气.

假设我有以下数据结构:

MyApp
| -beta_signups
| -users
| --fred
| ----发送电子邮件至"fred@test.com"

我希望能够根据"注册"部分下的电子邮件地址添加注册人员.这是我尝试过的,但它没有用.

var myDataRef = new Firebase("https://myapp.firebaseio.com/beta_signups/");
  $('#submit').click(function() {
      var email = $('#email').val();
      myDataRef.child(email).push({email: email, beta_key: false});
      $('#email').val('We got it.');
  });
Run Code Online (Sandbox Code Playgroud)

关于如何动态添加孩子的任何建议?

Kat*_*ato 5

您不能使用电子邮件地址作为子路径的键,因为它包含无效字符.请参阅文档中的创建参考.

您还要根据电子邮件地址创建子项,然后使用创建电子邮件的子项push.也许,你应该摆脱这.child(email)一点并使用push来创建记录.

var user_id = myDataRef.push({email: email, beta_key: false}).name();
Run Code Online (Sandbox Code Playgroud)

首先要问的是你是否真的想通过电子邮件存储用户.通常,ID会更有用(他们可能会在以后更改他们的电子邮件,在这种情况下,您必须重新键入系统中的所有用户数据).

如果这是一个要求,那么你要么必须对它们进行哈希处理,要么对它们进行清理.例如:

// replace all forbidden characters with something that won't appear in the email address
var key = email.replace(/[.$\[\]\/#]/, ','/);
myDataRef.child(key).set({email: email, beta_key: false});
Run Code Online (Sandbox Code Playgroud)