我试图用firebase实现一个登录系统。
在我的页面中,我有几个来自firebase的id,允许用户输入用户名。
我想把这些信息传递给后端服务器,以便插入数据库。
我担心的是:我的usercontroller createaccount(…)正在将我需要的每个数据设置为参数,这使得我的源代码相当混乱。
问:有没有什么方法可以让我把所有的数据作为一个模型来传递?
例如,我在后端有一个类调用my logininfo,这样我就可以将函数更改为createaccount(mylogininfo logininfo)?

// vue front end
<template lang="html">
   <v-form>
      <v-text-field :label="label" :clearable="clearable" :counter="counter"></v-text-field>
      <v-btn color="primary" @click="createAccount">
         <span>
         submit
         </span>
      </v-btn>
   </v-form>
</template>
<script>
   var firebase = require('firebase/app');

   export default {
     name: 'CreateAccount',
     data: () => ({
       label: 'User name',
       clearable: true,
       counter: 20,
       firebaseUId:null,
       firebaseProviderData:null
     }),
     created() {
       firebase.auth().onAuthStateChanged(user => {
         if (user) {
           this.firebaseUId = user.uid;
           this.firebaseProviderData = user.providerData;
           this.$store.dispatch('signInAction', user);
         }
       });
     },
     methods: {
       createAccount() {
         return myServer  // axios object which pointing to my backend server
           .post('/user/createAccount', {
             username: username,
             firebaseUid: firebaseUid,
             providerId: providerId,
             providerUid: providerUid
           })
       }
     }
   }
</script>
<style scoped>
</style>

// Spring back end
@RestController
@RequestMapping("/user")

public class UserController {

    @ResponseBody
    @RequestMapping("/createAccount")
    public String createAccount(@RequestParam("username") String username,
        @RequestParam("firebaseUid") String firebaseUid,
        @RequestParam("firebaseProviderId") String firebaseProviderId,
        @RequestParam("firebaseProviderUId") String firebaseProviderUId) {

        return "create Success";
    }
}

最佳答案

为什么不使用json类型来发布呢?只需创建一个json对象,将其发布在body部分。
在后端,我认为Java可以很容易地捕获主体并将其解析成JSON。

07-24 19:14
查看更多