商铺端扫描用户QR code后将数据存储到Firebase的实现问题咨询
问题:扫码后将用户凭证存入Firebase的实现方案
需求描述
我正在开发一款同时支持普通用户、商铺注册登录的应用,核心逻辑如下:
- 普通用户使用个人账号凭证登录后,会进入个人资料页,同时页面生成包含该用户个人数据的QR码
- 商铺端登录后可扫描用户的QR码查看用户凭证,我需要实现扫描完成后,将用户凭证存储到Firebase的新建路径中,用于记录用户到访过的商铺信息
我预想的实现流程是商铺扫描用户QR码后,先把扫描得到的内容转为字符串,再在Firebase中创建对应字段完成存储,当前使用的QR码扫描库为Zxing library,请问有什么可行的实现思路?
编辑:已找到解决方案
以下函数可接收QR码扫描结果并将其存储到Firebase:
public void resultSplitter(String result) { String keys[] = {"FullName", "Email", "Phone", "Age"}; String splitted[] = result.split("\n"); HashMap<String, String> valuesMap = new HashMap<>(); for (int i = 0; i < splitted.length; i++) { splitted[i].trim(); String value = splitted[i].split(keys[i] + " :")[1].trim(); valuesMap.put(keys[i], value); } User record = new User( valuesMap.get("FullName"), valuesMap.get("Email"), valuesMap.get("Phone"), valuesMap.get("Age"), elseReader, timestamp.getTime()); FirebaseDatabase .getInstance() .getReference("Reader") .child("Shops") .push() .setValue(record) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Toast.makeText(ElseRead.this, "Record added successfully", Toast.LENGTH_LONG).show(); progressBar.setVisibility(View.VISIBLE); } else Toast.makeText(ElseRead.this, "Failed to record! Try again!", Toast.LENGTH_LONG).show(); progressBar.setVisibility(View.GONE); } }); }
内容的提问来源于stack exchange,提问作者mike
相关产品推荐
相关产品推荐

