java - 适用于 Android 的 Firebase 数据库,以字符串形式返回地图数据
问题描述
因此,对于我的项目,我将服务器时间戳发送到 Firebase,然后立即检索它以转换为字符串,用作用户创建对象的唯一标识符。
数据嵌套在Timestamps/UserID/[this is where the timestamp is]
问题是,在检索数据时,您无法将地图对象添加为 child(),addValueEventListener
因此我坚持检索用户的唯一 ID 而不是时间戳。
这将返回以下内容:
DataSnapshot{key = [User's Unique ID], value = [timestamp i'm trying to isolate]}
而不是检索所有的乱码,我只想要时间戳。
这是代码,在此先感谢。
public void createFlat(){
/////WRITE TIMESTAMP VALUE TO SERVER UNDER TEMP NODE/////
final Map timestampMap = ServerValue.TIMESTAMP;
FirebaseDatabase.getInstance().getReference("Timestamps")
.child(FirebaseAuth.getInstance().getCurrentUser().getUid())
.setValue(timestampMap)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Toast.makeText(getApplicationContext(),"timestamp written",Toast.LENGTH_SHORT).show();
/////RETRIEVE TIMESTAMP FROM SERVER AND CONVERT IT TO A STRING/////
final FirebaseDatabase database = FirebaseDatabase.getInstance();
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference ref = database.getReference("Timestamps").child(uid); //here is the issue, can't add child(timestampMap)
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String timestampString = dataSnapshot.toString();
textView2.setText(timestampString);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_SHORT).show();
}
});
}else{
Toast.makeText(getApplicationContext(),task.getException().getMessage(),Toast.LENGTH_SHORT).show();
}
}
});
}
解决方案
DataSnapshot
对象同时包含Key和Value。首先你必须得到值,然后你才能调用toString()
. 下面这行会做......
String timestampString = dataSnapshot.getValue().toString();
推荐阅读
- c# - VS2015:Microsoft.CSharp.Core.targets(67,5):错误MSB6004:指定的任务可执行位置“...\csc”无效
- php - Laravel - 运行播种机时在 Guzzle 函数中抛出异常
- javascript - var module = require() 还是 const {module} = require()?
- python - 将 for 循环转换为 numpy 数组
- sql - 为什么在导入 CSV 时在 postgresql 中出现“整数类型的输入语法无效”?
- python - 如何在 Pygame 中播放随机 Mp3 文件
- gradle - Gradle - 从测试模块运行应用程序
- python - 使用 Python 的循环和 if 语句创建回文检查器
- html - React.js - 将 JSX 转换为原始 HTML 字符串
- java - 无法加载亚马逊移动广告