javascript - 通过 Angular 在 firebase 中使用自定义标题而不是 ID 创建新项目

标签 javascript angularjs firebase firebase-realtime-database angularfire

我正在通过 Angular 做后端并使用 Firebase 作为数据库。

一切都工作得很好,我已经创建了一个 Controller 来创建新的花盆 - 效果非常好。

但是,在创建新帖子时,它会在 firebase 中提供一个非常长且随机的 ID。

.controller("VideosCtrl", function(firebase, $scope, $firebaseArray) {

 var ref = firebase.database().ref('posts')
 $scope.groups = $firebaseArray(ref);
$scope.addgroup = function() {
$scope.groups.$add({
  title: $scope.newgroupTitle,
  caption: $scope.newgroupCaption,
  creator: $scope.newgroupCreator,
  privacy: $scope.newgroupPrivacy,
  published: $scope.newgroupPublished,

 })

}

我正在使用范围来创建新 jar ,但我不想使用随机 ID 来获取标题

      title: $scope.newgroupTitle,

所以当前我创建帖子时的数据库如下所示:

--mydomain
---- posts
------ RANDOM ID GENERATED
--------title
--------caption
--------creator
--------privacy
--------published
------ RANDOM ID GENERATED
--------title
--------caption
--------creator
--------privacy
--------published
----users

我想要:

--mydomain
---- posts
------ TITLE ( same as below)
--------title 
--------caption
--------creator
--------privacy
--------published
------ TITLE (same as below)
--------title
--------caption
--------creator
--------privacy
--------published
----users

任何推荐都会很棒!

谢谢大家的帮助!

最佳答案

当您在 Firebase 中使用 $add 时,您会自动创建推送 ID。如果您想使用自定义 id。相反,您应该使用object.child(id).set(objectInfo);

我修改了您的代码如下:

$scope.addgroup = function() {

  $scope.groups.$ref().child($scope.newgroupTitle).set({
    title: $scope.newgroupTitle,
    caption: $scope.newgroupCaption,
    creator: $scope.newgroupCreator,
    privacy: $scope.newgroupPrivacy,
    published: $scope.newgroupPublished
 });
}

这是纯 JavaScript 代码,但它应该可以工作,因为 Angularfire 是构建在 JavaScript 库之上的。

这里需要注意的一件事是,当您想要使用自定义键在 Firebase 中存储对象时,最好使用 $firebaseObject 而不是 $firebaseArray

引用:angularfire issue on github.

关于javascript - 通过 Angular 在 firebase 中使用自定义标题而不是 ID 创建新项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43067032/

相关文章:

javascript - 在 Asp.Net Core 中使用 Ajax 上传文件

angularjs - Angular 路由的可选哈希前缀

javascript - $scope 值在 $interval 内不可预测

javascript - 未捕获的 TypeError : ref. putString 不是函数

reactjs - React webpack 包大小很大

swift - Firebase iOS Swift 身份验证 API_UNAVAILABLE(macCatalyst) 问题

javascript - JS : Resolve a Formula for x

javascript - 如何保存带有webkit-filter效果的html5视频元素?

javascript - YUI.Test断言在事件回调中不会失败

javascript - Angularjs 使用 ui-sref 链接将 html 添加到变量