我们如何在 dart 中创建泛型类型的对象?
对于我的用例,我的每个 api 响应都包装为ApiResponse
类。对于登录 api 响应,我得到一个 json 对象,例如
{
"data": {
"email": "a@b.com",
"name": "A"
},
"message": "Successful",
"status": true
}
Run Code Online (Sandbox Code Playgroud)
因此,为了解析这些响应,我创建了如下类,但它们抛出编译时错误,指出未为类“Type”定义方法“fromJson”。:
class ApiResponse<T extends BaseResponse> {
bool status;
String message;
T data;
ApiResponse.fromJson(Map<String, dynamic> json) {
status = json['status'];
message = json['message'];
data = T.fromJson(json['data']); // <<<------- here is the compile time error
}
}
abstract class BaseResponse {
BaseResponse.fromJson(Map<String, dynamic> json);
}
class Login extends BaseResponse {
String name, email;
Login.fromJson(Map<String, dynamic> …
Run Code Online (Sandbox Code Playgroud) 我在 firebase 身份验证登录方法中启用了 facebook 登录。
根据 Facebook 应用程序提交要求,当用户从 Facebook 删除/取消授权我的应用程序时,我需要删除/取消授权我的应用程序从 Facebook 获取的所有用户数据。
这意味着,我还需要取消用户与身份验证的链接。是否有一个 admin sdk 方法可以让我做到这一点?我检查了admin.auth().updateProviderConfig
方法,但它似乎会更新一般的 Facebook 登录配置。
有人可以帮我解决如何取消 Facebook 帐户链接但不删除用户吗?也许我可以删除用户并创建具有相同 uid 的新用户,如下所示?
const user = await getUser(uid);
await admin.auth().deleteUser(uid);
await admin.auth().createUser({
uid: uid,
email: user.email,
displayName: user.displayName,
disabled: false,
emailVerified: false,
photoURL: user.photoURL,
phoneNumber: user.phoneNumber
});
Run Code Online (Sandbox Code Playgroud)
有什么建议么?
facebook firebase-authentication google-cloud-functions firebase-admin
当我运行此代码时,它显示以下输出:
One : 15
Two : 15
One : 14
Two : 14
Two : 13
One : 13
Two : 12
One : 12
One : 11
Two : 11
Thread 1 suspended
Two : 10
Two : 9
Two : 8
Two : 7
Two : 6
Thread 1 resumed
Thread 2 suspended
Thread 2 resumed
输出不会持续到结束为One:1 Two:1是否未执行NewThread1类的myresume方法?这背后的原因是什么?
以下是NewThread1的代码:
class NewThread1 implements Runnable{
String name;
Thread t;
boolean suspendFlag;
NewThread1(String threadname){
name = threadname;
t = …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来DateTime
解析两个日期,以显示差异。我希望它的格式为:“X 年,Y 个月,Z 天”。
对于 JS,我们有momentjs
库和以下代码::
var a = moment([2015, 11, 29]);
var b = moment([2007, 06, 27]);
var years = a.diff(b, 'year');
b.add(years, 'years');
var months = a.diff(b, 'months');
b.add(months, 'months');
var days = a.diff(b, 'days');
console.log(years + ' years ' + months + ' months ' + days + ' days');
// 8 years 5 months 2 days
Run Code Online (Sandbox Code Playgroud)
是否有类似的dart库可以帮助实现这个用例?