当前位置: 首页 > 知识库问答 >
问题:

当新数据添加到特定子数据库时,如何使用云函数将数据写入Firebase实时数据库

邓深
2023-03-14
MyLike myLike = new MyLike(userId, System.currentTimeMillis();
         FirebaseDatabase.getInstance().getReference().child("myLikes").child(userId).child(System.currentTimeMillis()).setValue(myLike);
exports.whoLikedMe = functions.database.ref('/myLikes/{userId}')
    .onWrite((change, context) => {
      // Only edit data when it is first created.
      if (change.before.exists()) {
        return null;
      }
      // Exit when the data is deleted.
      if (!change.after.exists()) {
        return null;
      }
      // Grab the current value of what was written to the Realtime Database.
      const data2 = change.after.val();
      const likedDate = data2.date;
      const myUserId = data2.I_Liked_UserId;
      var likedMe = {
            date: likedDate,
            Who_Liked_Me_UserId: myUserId,
        }

      //get the current date in millis  
      var hrTime = process.hrtime();
      const dateMillis = hrTime[0];
      return admin.database().ref('/WholikedMe/'+myUserId+'/'+hrTime[0]).set(likedMe);
    });
exports.whoLikedMe = functions.database.ref('/myLikes/{userId}')
exports.whoLikedMe = functions.database.ref('/myLikes/{userId}/915170400000')

共有1个答案

罗淮晨
2023-03-14

在以下行中使用通配符语法(花括号):

return change.after.ref('/WholikedMe/{myUserId}/{hrTime[0]}').set(likeMe)

该语法不适用于set语句。您需要使用:

return change.after.ref('/WholikedMe/' + myUserId + '/' + hrTime[0]).set(likeMe)

...我想,在我的手机上做这个不能再检查了。-)

 类似资料:
  • 我是< code>sqlite数据库的新手,在我的项目中,我需要在创建数据库后添加数据。我尝试了这种方式,这是我的代码。 公共类主要活动扩展活动 { } 我创建了另一个类来打开sqlite数据库。 公共类MySqlHelper扩展SQLiteOpenHelper{ 公共字符串getBird(int id){ 它给我异常 帮助我避免这种情况,并在创建数据库后立即插入数据。

  • 我无法在Firebase实时数据库中添加任何数据。数据库连接正常,但我无法添加任何数据。当我单击“到”按钮时,添加到数据库中的数据。 主要活动。java-代码 事件。java-代码

  • 我正在为具有许多嵌套行的json数据库寻找将Firebase实时数据库数据迁移到云Firestore的最佳方法。示例: 我没有找到任何可以帮助我的东西。我需要迁移的是Cloud FireStore的新离线功能。我正在使用Ionic3(角度5)

  • 请帮助我想从Firebase实时数据库检索一个特定的数据,我有2个用户,教授和学生,我想使用该数据进行验证。 FireBase实时数据库 FireBase实时数据库

  • 实时数据库触发器在写入创建时是排队还是线程化?

  • 我正在一个聊天应用程序,其中消息存储在firebase实时数据库。现在,如果我创建一个如下所示的节点(Chats-Better-A-ID和-B-ID是自动生成的聊天室密钥),那么我想知道当用户S在聊天应用程序中打开与用户T聊天时,so数据库将只读取存储在Chats-Better-S-T-ID中的消息,而不会读取其他聊天室消息!?我说的对吗?如果是,那么它会降低定价吗? 或 如果我存储如下所示的数据