【问题标题】:Getting the ID when message is sent - Firebase & AngularFire发送消息时获取 ID - Firebase 和 AngularFire
【发布时间】:2018-01-27 18:25:21
【问题描述】:

我有一个消息“应用程序”,我需要在创建消息时获取 ID。 以下是所有代码:

<html ng-app="sampleApp">

<body ng-controller="SampleCtrl">
    <ul>
        <li ng-repeat="message in messages">
            <input ng-model="message.message" ng-change="messages.$save(message)" />
            <input ng-model="message.by" ng-change="messages.$save(message)" />
            <button ng-click="messages.$remove(message)">Delete Message</button>
        </li>
    </ul>
    <form ng-submit="addMessage()">
        <input ng-model="newMessageText" />
        <input ng-model="newMessageBy" />
        <button type="submit">Add Message</button>
    </form>

    <!-- Angular -->
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>

    <!-- Firebase -->
    <script src="https://www.gstatic.com/firebasejs/3.6.6/firebase.js"></script>

    <!-- AngularFire -->
    <script src="https://cdn.firebase.com/libs/angularfire/2.3.0/angularfire.min.js"></script>
    <script>
        var config = {
            apiKey: "xxx",
            authDomain: "xxx",
            databaseURL: "xxx",
            projectId: "xxx",
            storageBucket: "xxx",
            messagingSenderId: "xxx"
        };
        firebase.initializeApp(config);
        var app = angular.module("sampleApp", ["firebase"]);
        app.controller("SampleCtrl", function ($scope, $firebaseArray) {
            var ref = firebase.database().ref().child("messages");
            $scope.messages = $firebaseArray(ref);
            $scope.addMessage = function () {

                $scope.messages.$add({
                    message: $scope.newMessageText,
                    by: $scope.newMessageBy
                });
            };
        });
    </script>
</body>

</html>

发送消息时,它会创建一个 ID 和其下的消息内容。所以,我需要获取发送消息的 ID,并将 ID 写入 Firebase。

这是数据库的样子:

{
  "messages" : {
    "-KrsHPUi7pIWTQ1qgO4q" : { // I NEED TO GET THIS
      "message": "blah blah blah...",
      "by": "john"
    }
  },
  "ids" : {
    "first": "-KrsHPUi7pIWTQ1qgO4q" // AND PUT IT HERE
}

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

    这里是如何获取id的

    $scope.messages.$add({
                        message: $scope.newMessageText,
                        by: $scope.newMessageBy
                    }).then(function(ref) {
                       var id = ref.key;
                      // do with the key what ever you want
    })
    

    【讨论】:

    • 还有一个问题,我如何在每次更改某些内容时获取 ID,或者在删除消息时删除 id?
    • 请在链接中查看如何在不生成密钥的情况下将数据写入firebase,此处为stackoverflow.com/questions/24560075/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 2016-05-29
    • 2018-09-11
    • 2017-01-19
    • 1970-01-01
    • 2020-12-12
    相关资源
    最近更新 更多