Tag: database

delete_all vs destroy_all?

我正在寻找从表中删除logging的最佳方法。 例如,我有一个用户的用户ID跨越很多表。 我想删除这个用户和每个在所有表中都有他的ID的logging。 u = User.find_by_name('JohnBoy') u.usage_indexes.destroy_all u.sources.destroy_all u.user_stats.destroy_all u.delete 这工作,并从所有表中删除用户的所有引用,但我听说, destroy_all是非常stream程重,所以我试过delete_all 。 它只将用户从他自己的用户表中删除,并且所有其他表中的id都为空,但保留完整的logging。 有人可以分享执行此类任务的正确stream程吗? 我看到destroy_all调用所有关联对象的destroy函数,但是我只想确认正确的方法。

Firebase中的多对多关系

我有一个Firebase数据库。 我有公司和承包商。 承包商可以为多个公司工作,而公司可以有多个承包商。 这是一个直截了当的多对多的关系。 我希望能够回答有关公司和承包商的问题: 给定一个公司,谁是目前的承包商。 给承包商什么公司他们的工作。 在Firebase中构build数据有哪些select?

如何防止Firebase中的重复用户属性?

我正在使用FirebaseSimpleLogin来创build用户并处理身份validation。 当我通过$createUser()方法尝试创build一个简单login的新用户时,如果电子邮件地址已被使用,则firebase将不会创build该用户。 不过,我也使用$set()将我创build的用户保存到我的user.uid ,然后创build它们,并使用user.uid作为键。 当试图写入数据库时​​,即使用户名不唯一,firebase也会保存logging,因为只需简单login就可以使用电子邮件和密码。 那么我怎样才能validation一个用户名是唯一的,当它不被用作用户对象的关键? 我正在创build像这样的新用户: $scope.createUser = function() { $scope.auth.$createUser('trinker@gmail.com', 'password').then(function(user, err) { if (!err) { ref.child('users/' + user.uid).set({ email: user.email, username: user.username }); console.log("success!"); }else{ console.log(err.message); } }); } 而我的用户对象如下所示: { "users" : { "simplelogin:28" : { "email" : "trinker@gmail.com", "username" : "jtrinker" }, "simplelogin:30" : { "email" : "test@gmail.com", "username" : […]

Firebase查询子项的子项是否包含值

表的结构是: 聊天logging – > randomId – > – >参与者 – > – > – > 0:'name1' – > – > – > 1:'name2' – > – > chatItems 等等 我想要做的是查询聊天表,find所有通过传入的用户名string保持参与者的聊天。 这是我到目前为止: subscribeChats(username: string) { return this.af.database.list('chats', { query: { orderByChild: 'participants', equalTo: username, // How to check if participants contain username } }); }